T re sistemi per farle
e per disfarle
Il joystick senza misteri
Mensile - £5 gennaio 1986 - Anno V N 27 • Sped. Abh. Post. Gr 111/70 - Cft - Dtstr MePe
Due giochi di strategia
PRESENTA
RUBRICHE
Grafica
Figure geometriche
Ricrosività e merletti in basic
OOMANDE/RISPOSTE
12 1 RIGA
SPECIALE
PROTEZIONI
RECENSIONI
95 ANNUNCI
In classe
21
Tempo dì saldi
■
■
•
*
23
La merce più economica
•
«
*
*
L'Utile
26
Protezione antilìsl
*
*
*
Hi
2B
Protezione turbo software
*
75
Enciclopedia di routine
*
*
•
*
Oltre II basic
31
Autostart 64
*
Didattica
42
Uoa stellina passo dopo passo
•
45
Impariamo a sbagliare
•
•
•
•
57
La vìrgola è mobile
*
*
*
70
Utilizzo del joystick nel 064 e C 1 6
*
*
—
Simulazione
61 Un cannone neu troni co • *
Giochi
Attacco aereo
Pressi inamente sui vostri schermi
JHrvtìura: AJessaftdns cto sanane
Rtdutom/ctillibDriitDfi: Giovanni Be&ùi, Sto» Botola. Anufrea « AUeoj Ssnenl,
Gia-Tcario Cassarla, Euoef Uo Coppan r Mauria» ttair Assale. Marco De Martino, I. ucs Sadutsi
Stancarlo Manali. "Flfswkj Molrran. Enne» Scetsau D Mattumn M l tatti. Massimo Palli.
Massimo Pcfluirt. Carla Rampi, Fa tuo Sonato Giovanni Veroni, Antonio Viscunii
3#gr«t>r1i di radutane: Maura Cwre'-ni' ^rm
untata Grafito; Mary BeiWiuto, Arturo Claglia. Paolo Verty«x>
Dirtrton», f^utan** pubbticttfc V.to Fsm&poeia. 7$ - 201*2 Milano M og/BiicnJFi
Pubblicità; Milano; Mitìheto Prendimi. Gbtg« Rutto™ Rtìteno Sgnirinzattf.
Claudio ridane j Sogrptaria. Ultala Owpxgi
m Rema Spazio Nuove - via P. Fbscari 70- K?i 3 S Roma ■ Tel. oe/SlQSGTt
Abbonamenti: Manna Vantimi
Tariffa; ipmzzo per oppia L 3 000 Abtwnamgnio annua (n fascicoli) L 2a oOO. Estero; il Nipote
AbbonamRnia cunu'aitvo elle riviste Ctamputor e Commodoro Computar Clun L. 55 0®
l versamemii vanno rr^rusteti a Systema Editoriale Sri molane mo&gro bancone,
o utiftEZanda »1 cJc postata n 372522Q7
C(HrpoeiEti>nh Systems Editorata SU
Fotolito; Edtonaite Sri
Stampa La Ltogttflcti Sri. - Busto Arsrrto (VA|
»: Tribù nata di Milano n. STO del 2/11
ribunata di Milano n. 370 del 2/1 0/62 - Dottora Rmporwsixrto Mietete [> Pisa
HtflslrazkKH
OEt. OT
Dlatrib uxtane: MetPa, v..i G Carco™ 32 Milano
Spdd m ùbb posi, gr HI - Pubblicità intonane a! 70%
Olstrll
La protezione del software
Perchè non parlate
mai di come si fa a
proteggere un
programma oppure
di come eliminare la
protezione da quelli
normalmente
commercia lizzati ?
(numerosi lettori)
Xll miriamo sutiiio ncM'argomcnl» suddivj-
dondoli) Eli parsi cnjij che rappresentane*, eia
so urtn, unii risposta alle domande più cornimi
che sono pervenuto, numerose, negli ni rimi
rompi.
I computer dedicali
solo e ben determinato compito. Si pensi a]
sistemi di video frittura a doperai] nelle rc-
d:i/si mi dei giornali o ni calcolatori in grado ili
svolgere compili particolarissimi come i enn-
l rolli di processo nelle produzioni in sene di
manufatti di vario tipo.
i progi animi capaci di farii funzionare risie-
dono spesso su ROM e il software ivi residen-
te (denominato, più propriamente,
I IRMWARR) ss rivela utile e funzionale solo
se utilizzato insieme con la arcuile ria del tro-
nfila "di contorno” di cui Fa parte Se i proget-
tisti lo desiderano, £ sufficiente., in questi casi.
Per fare in modo che un particolare pro-
gram ari a min venga sfruttato co turno retai mer-
le da altri, esistono in commercio vere c- pro-
prie "si azioni di lavoro" caput i di svolgere un
utilizare un monitor che non seguo particola-
ri specifiche o coìtegare una tastiera a una
stampa me diversa da quella fornita dalla ditta
che realizza il sistema per renderlo totalmente
inefficiente In casi come quegli duplicare i
programmi residenti su ROM non sene asso*
luta mente ni nulla se l’elet ironica di contorno
non è esattamente come previsto.
Riferendosi al campo dell'utenza domesti-
ca, le vecchie consolle di videogiochi, che ri-
chiedevano cartucce ROM per funzionare,
erano suffìeien temente protette dal fenome
no della riproduzione indesiderata di pro-
grammi perchè, non essendo previsto il cari-
camento da supporto magnetico, l’unico mo-
do di duplicare un programma era quello di
copiarlo ancora su ROM. I costi totali, però,
risultavano tali che il prezzo finale alfutemc
sarebbe stato di poco diverso da quello ^uffi-
ciale" proposto dalla Casa madre
Al contrario, la notevole diffusione di com-
puter dotati di memoria RAM. in cui è possi-
bile caricare, cancellare, duplicare, modifica-
re e creare un qualsiasi programma, ha di
fatto reso obsolete le consolle dedicate ti fun-
zionami soltanto cort programmi su cartuccia
ROM
II sistema delle tastiere dedicate, opportu-
namente riveduto e corretto, potrebbe, a pen-
sarci bene, costituire una valida barriera alla
pirateria. Un esempio per tutti può essere
rappresentato dal Commodore Flm-4 che,
contenendo al suo interno ben quattro pro-
grammi di uso universale, rende di fatto com-
pletamente autonomo il calcolatore e non ri-
chiede l'acquisto di altri package di
programmi.
Assisteremo forse alla produzione di una
tastiera che funziona solo ite (polente) word-
processor, un'altra da spreadsheet e cosi via?
La mode rna tecnologia, con i circuiti integrati
customizzatL può infinti offrire altissima qua-
lità a prezzi stracciati Una tastiera dedicata
solo al word -processor, che sia venduta alme-
no in un milione di esemplari, potrebbe veni-
re a costare forse meno dd solo discheito-
programma di word-processor posto in vendi-
ta per un sistema compiile rizzato MS/DOS!
La protezione personale
Come fare per impcdsrechc nessuno, all'rn-
fuori di noi stessi, possa utilizzare un certo
programma frutto di laboriose fatiche?
Questo tipo di protezione è te più semplice
da applicare, perchè solo l'autore del pro-
gra mon conosce n za d e i co m p t i i c he svolge
il programma stesso,
D’ora in poi ci riferiremo, negli esempi cita-
ti, a listati brevissimi e facilmente comprensi-
bili anche dn principianti. E' ovvio che nessu-
no si sognerebbe di proteggere programmi
còbi banali e quanto diremo sarà utile esclusi-
vamente perseguire il discorso.
Supponiamo, dunque, che t[ programma in
oggetto sia in grado di calcolare la media arit-
metica di 10 numeri da digitare in successio-
ne. Una sua versione può essere, ira té tante,
la seguente:
100 PRINT "CALCOLO DELLA MEDIA "
110 X— 0: FQR I = ITO 10
HO PRlNTirNUMERO";
130 INPUT Y; X=X+Y
140 NEXT
150 FRINITALA MEDIA E"'
160 PRIMI X/ll)
Una persona non autorizzata che si impos-
sesstìsse di una copia del programma non
avrebbe difficoltà, dopo qualche minuto tra-
scorso alla tastiera, a comprenderne l'uso,
Se però cancelliamo le righe 100. 120 c L50,
che si riferiscono alla pane ,L in te ratti va" (cioè
di dialogo tra calco fai ore ed utilizzatore), l'e-
ventuale intruso dovrebbe far far girare più
volle il programma prima di capire a che cosa
realmente serve.
Un altro modo di confondere le acque è
quello di scrivere un programma in modo tale
che non sin la riga a numerazione più bassa
quella che deve esser elaborata per prima,
Scrivete il programma di prima come segue:
100 NEXT: GOTO 160
110 X=0;FGR It”TO10
130 INPUT Y: X-X+Y
140 GOTO 100
150 PRINT X/10
Se provate a landa re il programma col con-
sueto KUN, non ottenete altro che un mes-
saggio; NEXT WITHOUT POR ERROR IN
100 ,
It programma, infarti, per funzionare cor-
rettamente. necessita del comando:
RUM no
E' ovvio che è possibile scrivere il program-
ma in modo che te prima riga ad essere elabo-
rata sia qualsiasi c tale da essere conosciuta
solo dal l'autore del programma.
I più cattivi possono, addirittura, inserire
nella prima riga BASIC un comando come:
9(1 SYS 6473H
che. come è noto, provoca il restìi del sistema
nd Commodore 64,
Questo esaminato è il sistema più sicuro
che esista e non c'è verso che persone non
autorizzate possano usare proficuamente un
vostro listato. Può essere molto efficace nei
casi in cui molti utenti si servano dello stesso
computer centrale cui è possibile accedere via
terminate- Nd modo descrìtto* e soprattutto
ricorrendo d linguaggio macchina (L.M)
piuttosto che al BASIC, è possibile fare in
modo che solo voi possiate utilizzare un cerio
programma, perchè solo voi sapete non solo a
che serve ma anche come farlo partire.
Purtroppo questo è anche il sistema.,, più
stupido, perchè per protezione eh Software
non si intende Fusa "esclusivo" del program-
ma, ma te possibilità che, una voi tu ceduto ad
altri, non venga riprodotto e venduto a terzi
■^eriza la vohM a autorizzazione.
E ‘ fin troppo ovvio che se vendete un listato
non potete evitare di dire come funziona nè
tantomeno... che compito t in grado di
svolgere!
La protezione del “sorgente”
Volendo impedire, al Futi lizzato re del prò
grani ma. di ìmpossessessarsi dì una particolà-
re tecnica di programmazione adottata (alberi
binari, soluzione di sistemi di equazioni parti-
colarmente veloce, ordinamento di un vetto-
re, ricerca di un elemento di un uridiivio,
eccetera) è necessario utilizzare un linguàggio
poco conosciuto.
Al giorno d + oggi molte sono le persone che
conoscono piuttosto bene il BASIC, ma sono
in numero modesto gli esperii di linguaggio
macchina. Assembler (strettamente legato al
L.M.), Pascal ed altri linguaggi o pseudo
linguaggi. Chi ne è capace, in tal caro, può
scrivere il programma direttamente in L.M, e
limitarsi a comunicare al diente soltanto l'e-
satto indirizzo della SYS di partenza.
Chi non è in grado di scrivere un program-
ma in L.M. può ugualmente fornire all'inili/-
zaiore una versione compiteti del programma
BASIC originale che risulta aìtret tanto “illeg-
gìbile’' di un listato in LM. Che cosa sia un
eompilaiore lo vedremo tra breve.
Un programma scritto in L.M., o compila-
lo, impedisce a chi lo utilizza di impadronirsi
di una particolare tecnica di programmazione
(pensate alla generazione degli incredibili ef-
fetti sonori o, addirittura, alla riproduzione di
parole sintetizzate), ma non impedisce la du-
plicazione del programma stesso. Moltissimi
appassionati dì home computer, infatti, pos-
seggono versioni copiate di fantastici video-
giochi e, infischiandosene di sapere come
"funzionano", si limitano solo a giocare!
La protezione apportata dal codice macchi-
na non risolve, nemmeno in questo caso, la
piaga della pirateria sodare,
Le protezione ant icopia
E. finalmente, affraliamo il problema nel-
l'aspetto più interessarne e richiesto,
£' possibile proteggere validamente un
programma da copie non autorizzate? Ln ri-
sposte non può essere che laconica: no nel
modo più assoluto f
IL motivo è piuttosto semplice, dato che cè
un codice, l'unico problema ó scoprirlo. 1:'
come una serratura: è sufficiente avere la
chiave per accedere a Tappar! amento.
Se un commerciarne disonesto vende serra
Iure di cui conserva copia della chiave oppure
antifurti elettronici di cui annota la combina-
zione, può cedere l una o l'altra a scassinatori
con cui t in combutta perche la "protezione"
sia inefficace.
L'amara vicenda del Bancomat (che ha
consentito di contraffare tessere magn eliche
che abilitavano al prelievo elettronico di de-
naro negli appositi sportelli automatici) dimo-
stra che non è assolutamente possibile preve
nife con certezza azioni illegali o f comunque,
indesiderate.
L’unico modo per scoraggiare la pirateria
software, a mio avviso, è saio quello di segui-
re uniEi seria polìtica commerciate che impedi-
sca di fatto* con un prezzo oltremodo conte-
nuto. te duplicazione dei programmi.
Un listato che, per il Commodore 64, viene
posto in vendite a tramontila lire (cifra qua-
si eguale al computer su cui gira) rappresenta,
praticamente, una fcfidà aperta: gii sprotelto-
ri. acquistata una copia '‘regolare'', elimina-
no la protezione per puro e semplice diverti -
Commodore Computer Ciub - o
mento, sostenuti, alta fine, dalla soddisfazio
ne di aver sprotetto fe divulgato, magari gra-
tuitamente) un programma che, al pubblico,
costa una cifra consistente .
Se lo stesso programma fosse venduto a
ventimila lire* in confezione elegante* con
dettagliate e chiare istruzioni in italiano, mol-
to probabilmente non subirebbe il fenomeno
della duplicazione incontrollata, proprio per-
chè. tra supporto magnetico e fotocopie del
manuale, l'impresa non varrebbe la spesa,
Le protezioni più diffuse
Per evitare una copia indesiderata si ricorre
■quasi sempre a particolari procedi nienti che,
una volta caricato il programma, to fanno im-
mediatamente partire. Contemporaneamen-
te viene inibita la funzione dei tasti Run/stop
e Resto re c non è possibile arrestare reseca-
rione del programma o effettuarne ta copia.
II problema, a questo punto, si presenta di-
stinto a seconda se il programma protetto sta
su cassetta oppure su disco.
Nel primo caso, il programma può essere
duplicato nella maniera più semplice che esi-
sta. Ricorrendo ad uno dei duplicatori, la cui
pubblicità appare spesso su Commodore
Computer Club, è possibile riprodurre qual
siasi nastro, sia esso redatto in BASICO com-
pilato, scritto in L.M r oppure registralo col
Tu rbo Tape,
Quegli apparecch ietti diabolici, infatti, non
fanno altro che prelevare parte del segnale
elettronico durante la fase di lettura e trasfe-
rirlo, semplicemente, su un secondo registra-
tore (originale oppure no) predisposto per la
registrazione. Alla fine dd l'operazione* nd
secondo registratore sarà presente una copia
perfettamente identica alTorigìnale, prote-
zioni. trucchi e truechetti compresi!
E’ pertanto inutile dedicare tempo per indi-
viduare una protezione da applicare a pro-
grammi su nastro,
L'uso del drive per dischetti, invece, con-
sente protezioni più efficaci, [I motivo risiede
nel fatto che è possibile alterare » in parte, il
sistema operativo del drive stesso generando,
ad esempio, volontari errori di lettura che
impediscono, di fatto, una copia de! disco in
tutto o in parte.
Tentando dì effettuare un Back-Up (copia
intera del disco) il drive copiatore cade ineso-
rabilmente in errore e non porta a termine
l’operazione, Oppure sembra che l’operazio-
ne sia avvenuta regolarmente ma. tentando di
utilizzare U dtscocopia, il programma non
"parte”.
Approfondire il discorso sulle tecniche di
protezione su disco non fa parte degli scopi
del presente articolo che si ripromette, al con-
trario. di dare solo alcuni consigli su come
proteggere il proprio software e, per di più T
solo in casi particolari,
I ragionamenti che seguiranno, infarti, par-
tono dal presupposto che non è assolutamen-
te possibile, nè con la tecnologia attuale nè
con quella futura, generare un sistema di pro-
iezione efficace!!!
Nei vico dei discorso
Vediamo, dunque, di chiarire in quali casi ì
possibile applicare una qualche protezione al
software.
Escludiamo» a priori, la possibilità di usare
un registratore» dato che il numero di utenti
Commodore che posseggono un duplicato re è
piuttosto elevato.
Riferiamoci, pertanto, solo a sistemi che
utilizzano ili drive.
Dobbiamo, tre l’altro» escludere o limitare
software di larghissima diffusione (videogio-
chi) ed il perchè lo capirete tra breve.
Potrà proteggere il proprio software, forse
anche per vie legali, solo chi si dedica a sten-
dere programmi professionali "su misura '.
I consigli che seguiranno, in parte applicali
personalmente con un certo successo e in par-
te noti per "sentito dire", non sono altro che
un invito ai lettori a proporre qualcosa di
analogo che abbia una considerevole possibi-
lità di creare una "protezione”.
E 1 infatti inutile (e ipocrita) descrivere in
dettaglio una certa tecnica perchè, una volta
pubblicato un articolo su come utilizzarla, au-
tomaticamente. tra le righe, viene suggerito il
modo di ^proteggere, Sarebbe come pubbli-
cane il codice segreto per entrare m contatto
con ta banca dati della NASA,
La continuità dell 'assistenza
Un modo di evitare la copiatura dei pro-
grammi è quello di privilegiare committenze
di programmi che richiedono frequenti
aggiornamenti.
Un programma di contabilità che debba
tener conto di nuove leggi» decreti* nuove
tabelle ed altro» offre di certo più garanzie di
un programma “universale” come un word-
processor (o videogioco)* che non richiede
“manutenzione” di alcun tipo.
Non appena sì vara una legge che impone
variazioni, il cliente è tnev labilmente costret-
to a chiamarvi per le opportune modifiche al
programma da voi fornito in precedenza. In
questi casi, che possono esser più frequenti di
quanto si pensi, ri cliente scorretto difficil-
mente passerà tutte le volte la nuova versione
ad estranei e questi* in molti casi, desisteran-
no dal richiedere ogni volta l'aggiornamento.
Considerando* tuttavia* questi casi un mo-
do per scoraggiare ta duplicazione è quello di
inserire in ogni schermata Limerò nominativo
della Ditta cliente c così in ogni copia di qual-
siasi output su stampante.
In questo caso* infatti, se i] titolare della
ditta Rossi cede sottobanco una copia del vo-
stro programma alla ditta Bianchi* die figura
farà questo titolare con ta propria segretaria e
con la propria clientela? Immaginate ta figu-
raccia che è costretto a fare nel consegnare ai
propri elicmi output di stampante su cui figo
ra, cancellato» il nominativo delta ditta Rossi
coperto, a malapena, dal timbro delta ditta
Bianchi!
E' probabile, inoltre, che ta ditta Bianchi si
rivolgerebbe direttamente a voi* .se sapesse
chi è il vero autore del programma. Per “co-
prire" questa eventualità ogni tanto fate m
modo che sui video compaia it vostro nomina-
tivo, con tanto di numero di telefono.
Si potrebbe obiettare che. in un program-
ma del genere, è sufficiente scorrere il listato
in modo da rintracciare sia il primo che il
secondo "trucco" descritti e cancellare o alte-
rare le linee BASIC che contengono le istru-
zioni di,,, scoraggiamento.
Quello che infatti non vi abbiamo ancora
detto è che il programma deve* in ogni caso,
esser compilato.
Che cosa è un compilatore
Un compilatore è un particolare program-
ma che si incarica dì leggere un qualsiasi pro-
gramma scritto in BASIC e dL^tradurlo" in
una versione molto vicina al Linguaggio Mac-
china. Il vantaggio di tale procedimento risie-
de nel fatto che ta velocità dì esecuzione di-
venta decisamente più elevata.
Un programma compilatore, di cui esistono
diverse versioni (solo su disco)» richiede una
procedura semplicissima.
Supponiamo che vogliate compilare un
programma BASIC che, ovviamente, avete
verificato più volte e non contiene errori di
sorta. Questo programma lo registrate (e ve-
rificate ) sullo stesso disco che contiene il com-
pilatore. Quest'ultimo, caricato e "lanciato",
chiede solo il nome del programma che inten-
dete compilare. Dopo aver digitato il nome
esatto del file- programma, il compilatore si
mette al lavoro che termina in un tempo pro-
porzionale alla lunghezza del programma
stesso e che non è mai inferiore ai cinque
minuti. Alla fine di tulle le operazioni, sul
disco è presente un file-programma (con un
nome secondo lo standard specificato sul li-
bretto di i st razioni) eh e va caricato (LO A D ) e
lanciato (RUM) come un qualsiasi program-
ma BASIC ma che sembra composto da un’u-
nica istruzione: SYS.
II programma compilato, benché sia stato
generato su disco* pub essere registrato su
nastro magnetico e sottoposto a tutte le ope-
razioni Cui normalmente sottoponete un qual-
siasi programma BASIC ad eccezione della
modifica, cancellazione o aggiunta di nuove
istruzioni.
I primi “trucchi”
I! vantaggio di consegnare al diente una
copia compilata del programma fa si che lo
stesso listato sia tllegibile. almeno da una per-
sona non molto esperta, e* di conseguenza,
non modificabile: tutte le intestazioni, scritte*
videate* nomi eccetera verranno riportati su
video o su stampante senza alcuna possibilità
di modifica.
Un altro “trucco" per evitare la duplicazio-
ne indesiderata del programma è quello di
garantire un certo servizio, magari gratuito,
di nordino degli archivi eventualmente gene-
rati dal programma.
Nelle varie opzioni del package, ad esem-
6 - GomrTìodore Computer Cfub
pio* fate m modo che. dopo Tinse ri mente di
un certo numero dt nominai ivi, sm necessario
un riordino degli stessi, altrimenti, con l'au-
mentare delle dimensioni dello stesso archi-
vio. la ricerca di un dato avviene dopo un
tempo sempre più lungo. Si potrebbe, ovvia-
mente, inserire □ IV in temo dello stesso pro-
gramma un’opiiioné che permetta il rinrdinò
automatico tutte le volte che se ne presenta la
necessità; ma. in questo modo, chiunque po-
trebbe compiere l'operazione, anche chi pos-
siede una copia di "favore" del listato,
Strutturando il programma, invece, in mo-
do che m richieda il vostro intervento almeno
set volte l'anno, vi garantirete da copie abusi-
ve Dal vostro cliente vi presenterete (ripeto:
gratuitamente) con un particolare program-
ma, che non cederete per nessun motivo, che
si incarica di "mettere a posto ” i file generati
dal programma, E‘ ovvio che chi ne possiede
una copia illegate non potrà giusti bea re la
richiesta di un vostro in terremo?
Un altro trucco, sperimentato personal-
mente con successo, consiste nel "legare” il
programma con i file che genera Con la scusa
di illustrare all'impiegato (che utilizzerà il
computer) t modi di funzionamento, passate
un intero pomeriggio (ne vale la pena) e se-
guitelo almeno nel Tinse rimerito ds un centi
naio di nominativi. In seguito fate in modo,
senza che se ne accorga, che il programma
funzioni correttamente solo se sul disco sono
presenti, ad esempio, tre nominativi prima
digitali c che, ripetuti in una parte, inaccessi-
bile dall operatore e dal programma, fungano
da "chiave” per riconoscere se il programma
£ usato da persone autorizzate oppure no.
Il programma, in altre parole, funziona str-
io se in presenza dcH archivio (già iniziato)
de! diente. Una copia del programma funzio-
nerebbe solo se si fornisse anche l'archivio
che ha generato (l ru cui i tre nominativi ''chia-
ve”). Non può esser commercializzato un
programma che funziona con un archivio
riempito in parie 1
Se l'utente richiede l'opzione di canee datu-
ra di nominativi, voi realizzerete una partico-
lare opzione che si limiterà a non considerare
ulteriormente il nominativo indicato. Questo,
invece, resterà fSSteamcnic sul disco anche se
non più accessibile da programma li vostro
intere vento periodico consentirà, in un secon-
do momento, di cancellare realmente i nomi
nativi indesiderati grazie al solito programma
Top Secrer da utilizzare in casi come questi
Sul prossimo numero, oltre a riprendere A
discorso, parleremo di àEiri tmccheiti che
hanno consentito, a numerosi programmato-
ri, di prò legge re il frutto dei proprio lavoro,
Ci farà piacere riportare, come abbiamo già
detto all'inizio, l'esperienza dei lettori che ab-
biano affrontato e risolto bri Iten te mente (o
meno!)!’ a n o i ist y pr< >b lem i^.
Alessandro dv Si mone
Mancanza di compatibilita
□ Ho notato thè alcuni programmi regi'
strali sa nastro adatti per il VK’ 2ÉL pur
non avendo PEEK o POKE, non possono
essere caricati su C64. C T è qualche modo
per eseguire questa operazione ? (Rosa-
rio Melilli - Chleri)
* Come abbiamo più volte detto, vi so-
no notevoli differenze tra la struttura
della memoria del V1C 20 e del C64. Può
accadere che alcuni programmi senili
per VIC 21! possano essere caricati su
C64, ma per farlo occorre prima salvarli
svi disco e da quest” ultimo caricarli su
C64, Occorre però sottolineare che solo i
più semplici programmi BASIC possono
girare su ambedue i calcolatori, non cer-
to complessi programmi scritti in Lin-
guaggio Macchina
Super Turbe
□ So no ri uscito ad otte nere un program-
ma chiamato “SUPER TURBO" che gi-
ra sui Commodore 64. Poiché io posseggo
un PLUS 4. ho caricato il programma su
quest' ultimo* ma non c'è alcun modo di
Tarlo funzionare. Potete darmi qualche
suggerimento ? (Pietro Ciuccio - S Mar-
gherita Relice (AG))
* I calcolatori Commodore 64 e PLUS 4
sono piuttosto diversi fra loro e difficil-
mente un programma scritto per il primo
può girare anche sul secando. Ciò non
accade, di norma, quando il programma
è molto semplice e scritto in BASIC.
Non è questo, purtroppo, il caso del
'SUPER TURBO ”, programma in lin-
guaggio macchina (L.M.) che funziona
egregiamente su C64, ma non sul PLUS 4
(oppure Ciò) proprio a causa de Ila diffe-
rente struttura dei due calcolatori.
CtÓ
PLLIS4, CI6
e caratteri dì schermo
IT Quando collego il min PLI S4 al televi-
sore* 1 caratteri dei bordi escono dallo
schermo. Come fare per ovviare a questo
inconveniente 7 (Massimo Falcione - Vì-
ho Marina)
• 1 cara Iteri dello schermo del PI US4 e
del C iò sono visualizzati ricorrendo ad
una dimensione più ampia di quelli dei
C64. Può cosi succedereche nei televiso-
re domestico i caraiteri del bordo escano
Commodore Computer duo - 7
dai limiti dello schermo visibile. Chi pos-
siede un monitor non ha, fortunatamen-
te, questo problema.
Per ovviare al G neon ve niente descrit-
to. occorre premere il tasto “ESC" e la
lettera l 'R ': in tal modo il numero di
colonne delio schermo si riduce da 40 a
38, e tutti i caratteri risultano così visibili.
Il calcolatore, in pratica, crea, ricorren-
do al sistema descritto, una finestra grafi-
ca sullo schermo,
E' doveroso ricordare, però, che se un
programma è slato scritto in modo da
sfruttare lo schermo ne! forma to di 4(1x25
caratteri, funzionerà mate se si ricorre
alla tecnica descritta.
Programmi per Ciò e PLUS4
□ Posseggo un calcolatore PLUS4 e pos-
so facilmente procurarmi programmi per
il C16. F7 vero che i due calcolatori sono
completamente compatibili tra loro?
(Manuele Cecconello - Gaghanìco (VC))
» Il C16 ed il PLUS 4 hanno una struttu-
ra della memoria interna ed un sistema
operativo molto simili fra loro. Non biso-
gna dimenticare, però, clic il PLUS4 ha
una zona delle memorie volatili (RAM)
molto più estesa del Ciò, anche se si
inseriscono, su quest’ultimo, espansioni
di memoria, E quindi sempre possibile
far girare sul PI.US4 programmi scritti
per Ciò, ma non sempre si verifica il
viceversa proprio perchè, in alcuni casi,
sì fa ricorso a tecniche di programmazio-
ne valide solo nel modello PLUS4.
Monitor del CI6
L_! Mi interesserebbe molto leggere i pro-
grammi in Linguaggio Macchina (L.M*l
Imm aguzzi nati nel mìo Ciò, ma non so
come fare. Mi potete aiutare ? (Riccardo
de Flora - Tomo)
• AirintemodclClò, come nel PLUS4*
è presente un programma "monitor" che
permette di disasse rubiate e operare su
tutti i programmi in linguaggio macchina
allocati in memoria. Per metterlo in fun-
zione occorre impartire, appunto, il co-
mando MONITOR, Da quel momento
si “entra" in L,M. e vi hanno a disposi-
dotte parecchi comandi per lavorare in
linguaggio macchina o Assembler, Ad
esempio, per disassemblare un program-
ma. cioè in pratica per leggerlo secondo
il linguaggio della MOS Technology, è
sufficiente il comando “D" seguito dal-
l'Indir izzo di partenza da esaminare. Per
tornare al BASIC, si digita “X” c il tasto
Return,
L’intero set di comandi disponibili è
stato pubblicato, purtroppo, solo sul ma-
nuale di istruzioni del PLEJS4, La nostra
rivista, per venire incontro alle esigenze
dei Clósti. ha riportato sut N.22 (luglio
agosto H S5) un articolo intitolalo, appun-
to, “Le istruzioni del Monitor 06 e
PLUS4T
I lettori che desiderano por-
re questi questi! sono pre-
gati di compilare esclusiva-
mente la scheda relativa
pubblicata in fondo alla
rivista.
Molti lettori chiedono spesso informa-
zioni su come ottenere i fascicoli arretrati
della Systems Editoriale.
I j ct ciò che riguarda la nostra rivista
KTC.C.) precisiamo che i numeri 1 e 2
sono esauriti ed t pertanto inutile richie-
derli. Altri numeri (3, 4. 7, 10) sono in
via di esaurimento ed è opportuno, in
caso di richiesta, precisare altri numeri
nel caso in cui non risultino disponibili al
momento de ITordi nazione.
Un numero arretralo costa L.StKJO
(compresa la spedizione), Nel caso desi-
deriate ordinare quattro (o più) arretra-
ti, conteggiateli per la cifra di 41 XK) tire
cadauno.
IT altresì possibile richiedere, su na-
stro, i programmi pubblicati su Commo-
dore Computer Club a partire dal N. 12.
Ogni nastro* che contiene tutti i listati
pubblicati (ad eccezione di ì rigai, viene
venduto al prezzo di L. ?????( ).
Anche in questo casti, per ordinazioni
superiori a N, 4 nastri, applicate uno
sconto di L, 1000 per ciascun nastro
desideralo.
Tn nessun caso, quindi, è necessario
addebitare le spese dì spedizione alle
quali provvede l’Ufficio Arretrati.
[N NESSUN CASO SARANNO
EFFETTUATE SPEDIZIONI IN
CONTRASSEGNO!!!
Per le ordinazioni, inviare in busta
chiusa racconta rida La un assegno con
l'importo esatto insieme con urta breve
lettera di accompagnamento indicando
CHIARAMENTE il vostro nome, co-
gnome. e indirizzo completo di codice
postale.
indirizzate a:
SYSTEMS EDITORIALE
Servizio arretrali
Commodore Computer Club
Viale Famagosta. 75
20142 MILANO
In alternativa* utilizzate un normale
modulo di conto corrente postale inte-
stato a:
C/C 37952207
SYSTEMS EDI TORIALE
Viale Famagostn. 75
21)142 MILANO
Non dimenticale, in quest'ultimo ca-
sti, di segnare sul retro del modulo di
corno corrente (nello spazio indicato con
la dicitura: CAUSALE DEL VERSA-
MENTO) via le vostre richieste che il
vostro nominativo completo.
& - Commodore Computer Club
Le immagini di questo fascicolo
3
1>LW
m
Ci******
R iceviamo molto spesso lettere che ci implorano di pubblicare titoli di libri validi per approfondire questo o quell’ argomento.
Molti lettori- infatti- dopo aver preso solenni fregature nell’acquisiare volumi; che promettevano mari e monti (ma mantenevano
laghetti e colline) si sono fatti più prudenti e chiedono maggiori informazioni prima di effettuare altri acquisti.
La Systems Editoriale, esaminando con la massima attenzione le schede informative inviate in gran quantità dai suoi lettori, sì
presenta sul mercato con un certo numero di testate idonee a soddisfare Se più disparate (e disperate) esigenze. In questo fascicolo di
Commodore Computer Club le proponiamo soprattutto ai nuovi acquirenti, preoccupandoci, in particolare, di evidenziare a grandi
linee le caratteristiche più salienti di ciascuna publicarione.
Chi fosse Interessato a procurarsi arretrati, oppure a sottoscrìvere abbonamenti cumulativi, è pregato di telefonare alla Systems
Editoriale (Milano ) chiedendo dell 1 ufficio abbonamenti e arretrati: 02/846734S.
2$
. . t •• - J . l pf - •■ * : 1 1. . • *^z * m y- 1 J
di T c 0 ' 0
' FU N2ri 0l y ( r
TVfMf
rL T opt
Df
^ROq
W ft! 5 «?
Ren ff ^AL
/L OL
POTER
Personal Computer è la nuova rivista Systems per gli utenti Commodore, MSX,
Sinclair
Dal mese di gennaio in edicola. 128 pagine a sole 3000 lire: allo stesso prezzo, la vostra
rivista, integra e migliorata, e molto dì più.
Non solo tre riviste per tre diversi utenti: Personal Computer è anche unMdea nuova
per far comunicare tutti gli hobbisti.
Personal Computer: 128 Kbytesdi rivista, tutti i mesi in edicola.
// mercato si evolve.
Anche noi.
vii
‘ • » -- v r*. m
* v' t'/ì TO,
PPs^ajSS--*.* -
'•iS?sfe. &* * i *•'' -
\t- *
r- . < , » y»* - i • _: :
• "i ■* •."•v * . #13§ * 3»i 1
tf '’.ri •••• *-V *-•/ *§5 !i J 5j-, _'
/
/
M
I mieto programmi di questa
puntata sono dedicati in gran
parte f ben 14 Una riga ) agli
utenti del CTS e P!us4. Negli
ultimi tempi, infatti, sono giunte
lamentele perla (presunta)
mancanza di attenzione, da
parte nostra, verso questa
categoria “minoritaria"
I listati privi di indicazioni
particolari possono girare,
come di consueto, su qualsiasi
Commodore. Autore de- micro
programmi di questo fascicolo
è Michele Maggi possessore,
beato lui, oltre che di un Pius4,
anche di un Commodore 04
due disk drive 1541,
stampante MPS 303. ptotter
1 52Q e datatisene *530 e
iiv* V'v*?
# 1
#5
#9
Radice e potenze (per qualsiasi Commo-
dore), Dato un numero, viene calcola
la relativa radice quadrala, il quadrato e
il cubo.
1 PRIMTCHPSa?^: IN
PUT "NUJ1ERQ ,r ■ A ■ P
FINTSOPCAÌ : PPINT
AT2 : PR I NTAT3 : GDI
□ 1
#2
Rettangoli C 16. Un disegno geometrico
che viene crealo con utilizzando il co-
mando BOX.
1 GRAPPICI T l;
FDRI-1TQ130STEP3;
BOXI, 80+1, I +50 , £00-1,1 ;
NEXT: GETKEYfì$;
GRAPHICS
#3
Consumi carburanti (per qualsiasi Com-
modore). Una utilissima una riga per te-
nere sotto controllo i consumi
automobilistici.
1 INPUT "LITRI CON
SUMATI " ; L : INPUT
"KM PERCORSI ” ; KM
: PR INT "XM/L” " ; KH
,'L : PRINT : RUN
#4
A rea/ peri metro (per qualsiasi Commo-
dore), Chieste le misure dei due iati di un
rettangolo, ne calcola l*area e il
perimetro.
1 INPUT "BASE, ALTE
Z. RETTANGOLA ;E f H
: PR INT "AREA" ; E+H
: PR I NT "PERIMETRO
”;E*B+H+E: BOTO 1
Cerchi Citi. Un in te ressa me applicazio-
ne del comando CIRCLE per capire co-
me funziona,
1 GRAPHICS l;
F0RI-PT03CSTEP3;
CIRCLEX, I ,1+10, I t I:
NEXT : GETKEYAS ;
GRAPHICS
#6
Valore CHR$ (per qualsiasi Commodo-
re). Viene chiesto un numero (compreso
tra tl e 255) di cui viene poi visualizzato il
corrispondente CHR$.
1 INPUT "DIGITA IL
UALORE DEL CHR$
C: PR I NTCHRSKC 2
; GOTO 1
#7
FRI NT musicale CI 6. Ogni volta che vie-
ne premuto un tasto, oltre alla sua visua-
lizzazione sul video, si scntiril un breve
impulso sonoro.
1 UOL0 : GETKEYAS :
50UNDS , 500 t 3 :
PRINTAS i : GQTD1 ;
#8
Ciambella C16, Una ciambella in Aita
Risoluzione che viene disegnata median-
te il comando BOX,
1 GRAPHIC1 , 1:
FORI *110100 STEF4;
BOXI , 100,80,330, 100,1 :
NEXT: GETKEYA3:
GRAPHICS
Schermo randnm C16 h Una schermata di
caratteri casuali che si ripete senza fine
1 5CNCLR:
FQRA-3072TCH071 :
POKEA, C RND C 1 ? *355? + 1;
NEXT: DOTO!
#10
Random music 06. Una musichetta ca-
suale creata dal C16.
1 UOLBI
A=1NT(RN0C1>* 10003+1:
SOUNDB, A, 7: BOTOl:
#11
Cambia n* drive (per qualsiasi Commo-
dore e 1541). Serve per portare da 8 a 9ÌI
numero di device del dn ve 1541. Tutto in
una riga solai
I OPEN 1,0,15, "10”
: PPINTttl t ”N-W ,r ; C
HRSCllS? ; CHP5C0)
;CHPSra) ; CHR3C41
3 ì CHRSC 73) : CLDSE
1
#12
Codici ASCII (per qualsiasi Commodo-
re). Ogni volta che viene premuto un
tasto viene visualizzato il valore ASCII
corrispondente.
1 INPUT "PREni UN
TASTO CE IL TASI
G RETURN 1 'N A$ : PP
INT SJ A5CII
ASCTC A$ > : GOTO 1
Commodore Computer Club - 13
# 13
Bandoni music II 06. Un’altra musi-
chetta in cui È casuale la frequenza musi-
cate e la sua durata.
1 UDLB :
B“INTCRNDC 13*303+1 :
A-INTCENDC 1 >*1000 3 + 1 :
SOLI NOE, A, E: G0T01
#14
Tasti musicali 06, Ogni volta che viene
premuto un tasto si udirà un suono in
lun/ione del codice ASCII del tasto
premuto,
1 UOLB : GETKEYAS :
BQUWOE , A5CCA$)*3 t 3 :
PRINTAS- : 0DTO1 ;
# 15
Diapason 06. Onesta una riga genera
una nota "LA" utile per accordare stru-
menti a corda fes. chitarra).
1 UQLB :
S0UND2, 516 * 60:
F[]RI-!TD2000:
NEXT : GOTO! :
#16
Vortice 06. Un impressionante vortice
generato dal vostro C- 16 con l'istruzione
BOX-
1 GRAPH 1C1 , 1>:
F0RA-2TO17B5TEF2 :
BOXI t C 160-A3 , C 100-A3
, C160+A3 , C100+A3 , A :
NEXT : BETKEYAS : GRAPHI
co :
#17
PEEK musicali 06. Questa una riga
chiede il numero di una locazione di me-
moria traducendone poi il contenuto in
una nota musicale.
1 UOL0 :
INPUT "LOCAZIONE ; L :
SGUND2 , PEEK(L) , 5 ;
PRINT“PEEK C J, L " D * ”PE
EK CL3 :
GETKEYAS ; GGTOl
#18
TakeofT C16. Un effetto sonoro che può
essere facilmente utilizzato nei vìdeogio-
chi di vostra creazione.
1 UDLS :
POP I “0TO9S3STEP5 ;
SD LINDI ,1,1: NEXT:
FOEI-BSaTCIpSTEF-S :
SGUND1 ,1,1: NEXT;
G 0 TD 1
#19
Telefono occupato 06 . Una simpatica
riga che genera il segnale telefonico di
occupato.
1 UQL0 :
90UMBS, 765,7 :
fqrt-itores r
NEXT: GOTO I
#20
Colori schermo C 16 . Mostra, per ciascun
colore generabile dal C-ló, ciascuna del-
le sette gradazioni,
1 SCNCLR:
FDRI«1TD1E :
F0HA-1T07;
COLGE0 , I , A :
C0L0R4 , I ,A:
FQRT-1TQE00 :
NEXTT , A t I
Nota Bene
Alcune righe tra quelle pubblicate sembrano possedere più di 80 caratteri e, come tali, inaccettabili dal computer
Nei casi in cui ci si accorga che la riga è troppo lunga, è necessario ricorrere alle abbreviazioni dei comandi cosi come indicato
nell appendice specifica riportata nel manuale del computer in vostro possesso
Ad esempio invece di scrivere FRI NT è possibile abbreviare col punto interrogativo (7) invece di POKE potete scrivere il
carattere P 1 seguito dal carattere che viene visualizzato premendo contemporaneamente il tasto shift insieme con ,l O" Tutte le
abbreviazioni possibili, lo ripetiamo, sono riportate in una delle appendici di qualsiasi manuale Commodore
Nel caso sbagliate a digitare i microlistati che superano, in lunghezza, gli ottanta caratteri ESYNTAX ERROR o altri Espi di
errore), è necessario, per sicurezza, ribatterli per intero e non apportare modifiche alla riga visualizzata con l'istruzione LIST
La partecipazione del lettori è gradita e compensata, in caso di pubblicazione, con materiate della
Systems editoriale (libri, fascicoli arretrati, abbonamenti, eccetera).
Inviate le vostre 1 RIGA, purché nella misura di almeno dieci per volta. Non ci è infatti possibile
raggruppare i (moltissimi) m le ro- programmi che pervengono singolarmente in Redazione.
Inviate i vostri lavori su carta, (meglio se su nastro) corredati, ciascuno, di una breve spiegazione sulla
funzione che compiono, proprio come il vedete pubblicati in queste pagine.
Ricordate di indicare chiaramente nome, cognome, via e città, e indirizzate a:
Commodore Computer Club Viale Famagosta, 75
SYSTEMS EDITORIALE Rubrìca “1 Riga" 20142 MILANO
14 - Vorrìfnodore Computer Club
COMPUTERTELEFONA
EPSON SECI S.p.ft-
30)24 Milane ■ Via limavo, 12 ■ Tfel. Oa-É>705136 7-S-9-0
40121 Bologna - Via Pietrame 'tara, 6S AVB - Tal, OBI '273686
,35120 Padova - Via Palliato, 23/0 mi. 4 f\} - Te). 0*9 @070870
[00199 Roma - Via Asm^ra, 58 - Tel. O&-039S766
CX-21 EPSON è un accessorio che dà un valore enorme al tuo calcolato-
re, quello dei terminali telecomunicazione.
CX-21 è un modem costruito con le tecnologie più avanzate , (modulato-
re - demodulatore) capace di convertire i segnali digitali in suoni che pos-
sono essere trasmessi con un normale telefono, in tutta sicurezza.
“telefonare" i programmi direttamente al computer dei tuoi amici che pos
seggono un CX>21
comunicare con personal computer di altre marche
collegarti con le banche dati di tutto il mondo è
per consentire lo scambio veloce e facile di programmi e dati
CX-21 è costruito con speciali circuiti integrati CMOS, è pic-
colo, leggero e molto affidabile.
Caratteristiche
- Funzionamento a batterie ncaricabiii
(4 ore di autonomia)
- Funzionamento duplex o half duplex
- Velocità di trasmissione fino a 300 bit-sec.
- Interfaccia RS 232
- Dimensioni 291x95x42 min
- Peso 700 gr.
Inoltre CX-21 può essere collegato a qualsiasi ham& o
personal computer tramite interfaccia RS £32 ■ C,
EPSON CX-21,
il tuo computer in un
mondo senza confini
Accoppiatore acustico
Anno nuovo Systems nuova
Le novità che vedrete fin
dall'inizio dell’anno e che,
magari, conoscete già.
A
IjL vele sicuramente saputo che Com-
modore Computer Club (la rivista che
hai in mano, tanto per intenderci) è da
tempo suggerita ai suoi clienti dalla stes-
sa Commodore. Lei dimostra la cedola di
abbonamento speciale che potete trova-
re nelle confezioni Commodore regolar-
mente distribuite dalla Commodore Ita-
liana Anzi, se nella confezione che state
per comprare non e presente la cedola-
sconto T come pure il certificato di garan-
zia Commodore Italia, potete esser sicuri
che la merce proviene dal mercato “pa-
rando" e non può godere dell’assistenza
ufficiale.
Perchè è stata, tra le tante (ma tante
davvero) scelta la nostra rivista? Loro
dicono che il motivo è da ricercarsi nel
numero di copie vendute (il più alto per
una rivista che tratta esclusivamente ar-
gomenti specifici di una marca di compu-
ter) e nella serietà e semplicità dell'impo-
stazione degli articoli.
Noi diciamo, invece, che la Commo-
dore produce apparecchi sufficiente-
mente idonei per supportare il sofware
che pubblichiamo. O no?
Scherzi a parte, ri fatto che C.C.C sia
indicata, dalla stessa Casa, come fonte
privilegiata di notizie Commodore, qual-
cosa significa e. forse, anche qualcosa in
più.
11 prezzo di copertina
Avrete, ahimè, notato che sono neces-
sarie 500 lire in più per procurarsi una
copia della nostra rivista. Non faremo il
patetico, tradizionale paragone col prez-
zo di una tazzina di caffè o con le sigaret-
te, Ci limiteremo a far notare che il corrL
spenderne aumento di pagine è tale da
mantenere i! rapporto quantità prezzo
costante, l*a qualità, invece, tende al
rialzo,
Il motivo dell'aumento del numero di
pagine: il numero di lettori che richiedo-
no specifici argomenti è sensibilmente
aumentato. D’altra parte eravamo co-
stretti a non trattare temi che, da soli,
richiedevano uno spazio eccessivo e non
giustificavano la loro presenza in un fa-
scicolo di ‘‘sole" M pagine. Gli utenti di
C-16 e PLUS-4, inoltre, scalpitavano e
non si accontentavano di articoli che ri-
guardavano " anche" la loro macchina,
ma richiedevano specifiche trattazioni.
La nuova rivista: “Personal Computer" 1
E' ormai in edicola la nuova creatura
della Systems Editoriale, Personal Com-
puter, che si rivolge agli utenti d* Com-
modore, Sinclair. MSX. Per quanto ri-
guarda gli utenti Commodore, la nuova
rivista tratterà argomenti un po' più
avanzati rispetto agli articoli che potete
trovare su C.C.C. Soprattutto, parlerà di
quei “legami' \ apparentemente impossi-
bili, tra le diverse macchine che rappre-
sentano, almeno per ora. la maggior fet-
ta di mercato nel campo degli Small
Computer.
Saranno presentati listati di un certo
interesse e. soprattutto, si offrirà ai letto-
ri volenterosi la po&sihiiità di coltabora-
re. Se, infatti, saranno pubblicate versio-
ni di listati per un solo determinato com-
puter, i lettori che adatteranno il pro-
gramma ad altri calcolatori potranno in-
viare la loro versione in modo che gli
utilizzatori di apparecchi identici ne pos-
sano usufruire.
Particolari tecniche di programmazio-
ne, come pure istruzioni Basic tipiche di
una sola macchina e non riscontrabili
nelle altre, saranno anche argomenti
trattati dalla nuova rivista Personal Com-
puter che insegnerà, nei limiti del pimi-
j
bile, ad ottenere gli stessi effetti su mac-
chine completamente diverse tra loro.
Protezione dei programmi
Da questo numero di C.C.C, approfit-
tando dello speciale ''Protezione del
software", viene inaugurata una nuova
"Sezione" completamente dedicata ai-
ri n le re ssant e argomento. Per stimolare i
lettori ad approfondire le proprie cogni-
zioni e colEaborare con C.C.C., la Re-
dazione promuove due iniziative
speciali.
Scopri il trucco
Commodore Computer Club e Soft-
ware Club (la rivista su cassetta della
Systems Editoriale) uniscono le toro for-
ze per un nuovo, avventuroso concorso.
Per partecipare, hasta acquistare un nu-
mero di Software Club, ogni mese in edi-
cola. e mettersi af Lavoro sul programma
che viene presentato protetto (ogni volta
con una tecnica diversa).
ÀI lettore che per primo invierà un
breve articolo che ili usi ri il metodo ado-
perato dalla Redazione per proteggere
quel particolare listato, verrà inviato un
pacco contenente prodotti della Systems
Editoriale.
Si noti che è necessario inviare il meto-
do usalo per proteggere e non quello
seguito dal lettore per eliminare la prote-
zione, Siamo infarti sempre contrari a
divulgare notizie che possano ind Merla-
rne nte danneggiare Fattività delle
Software House.
Proteggi i program mi con C*C.C-
Saranno esaminati e, se meritevoli,
pubblicati articoli f brevi, per carità) dì
lettori che descrìvano routine di prote-
zione (e non di sprotezione). Anche, e
soprattutto, semplici idee che necessita-
no studi più approfonditi saranno prese
in considerazione e pubblicate.
Per collaborare è necessario inviare il
materiale, corredato soprattutto del vo-
stro recapito telefonico, a:
Coiti inodore Computer Club
Systems Editoriale
Rubrica “Protezione del Soft-
ware”
Viale Famagosta, 75
20142 MILANO
16 ■ Commodore Computer Club
GRAFICA
COMMODORE 64 C- 128
(Solo con le routùies grafiche di Danilo Toma)
Figure geometriche
di Riccardo Sciavi
danno una buona idea delle capacità gra-
fiche del Commodore 64 in alta risoluzio-
ne (il termine “bires” che incontrerete
tielFarticolo non ha nulla si strano: ò ta
contrazione dell'inglese high-resolutìon,
aha risoluzione). Per la sua semplicità
non ci sembra il caso di commentare il
programma: è costituito da un menu di
otto opzioni e da altrettanti sottopro-
grammi incaricati di tracciare i grafici,
A proposito di queste subroulines, no-
tate l'assenza di istruzioni del tipo GO-
TO e GOSUR al loro interno, per cui i
più pigri nel Putì lizza re i programmi po-
tranno copiare solo le linee contenenti il
d t segno des i d erato ,
Sappiate che i disegni iniziano con le
linee multiple di 1000 (1000, 2000, 3WXJ
ecc,) e terminano con f istruzione RE-
TURN t che dovrete sostituire con STOP
se volete utilizzare le routines separata-
mente dal programma.
Attenzione che se rullimi* istruzione è
STOP il vostro “cerve! Ione" resta irt mo-
do hires e dovete essere voi a riposarlo
in modo "'normale ’ (tmodo testo) in uno
dei modi seguenti:
Con questi
disegni il C-64 non
eguaglia Raffaello ,
ma si difende bene!
- Premete RU N/STOP + RESTORE.
- Digitate alla “"cieca” (senza che, cioè
possiate vedere ciò che state digitando) il
comando TEXT6J (preceduto dal ca-
rattere di freccia sinistra) seguito dalla
pressione del tasto Return,
- Premete un tasto alfabetico seguito da
Return. generando però un 7SYNTAX
E RROR che riporta, tuttavia, il compu-
ter in modo normale,
- Premete SHIFr +CLRfHOME c digi-
tate, sempre alla “cieca", tl comando
LIST seguito da Return. Quando il pro-
gramma è listato tutto il calcolatore ritor-
na al modo normale.
«
- Digitate il carattere di doppio punto f:)
seguito dalla pressione del solilo tasto
Retum.
Detto questo, lascio la parola alle im-
magini (e alla tastiera su cui dovrete bat-
tere prima il programma). Non dimenti-
cate, prima di digitarlo, di caricare ed
attivare le routine grafiche di Danilo
Toma,
Come procurarsi
le routine grafiche
I nuovi lettori di Commodore Computer
Club forse non sono a conoscenza del
fatto che la nostra rivista ha pubblicato
lampo fa (esattamente sul N.14) un pro-
gramma in linguaggio macchina che ag-
giunge nuove, potenti istruzioni basic al
C-64,
Queste routine, esclusivamente grafi-
che, consentono di disegnare in Ire di-
mensioni in alta risoluzione.
Digitare ii programma è piuttosto fungo
e pericoloso e pertanto sconsigliamo, ai
lettori inesperti, la sua digitazione.
Per venire incontro alle loro esigenze,
tuttavia, la Systems Editoriale invia. $u
richiesta, in cassetta, le routine grafiche
insieme a tutti i programmi pubblicati sul
N.14 die AC.
Per avere la cassetta è sufficiente in-
viare la modica cifra di 5000 {cinquemila
ottocento) lire indicando, ovviamente, sìa
il numero di C.C.C, desiderato sia il vostro
nonni nativo completo. Non si effettuano
spedizioni contrassegno.
SYSTEMS EDITORIALE
Servizio arretrati
Viale Famagosta 75
20142 MILANO
Commodore Computer Club - 1 7
GRAFICA
100 REM COMMODORE 64
110 REM CARICARE LE ROUTJNES GRAFICHE
1 15 REM DEL N. 14 D I C.L.C,
1 1S :
120 REM * MENU' *
130 PR JNTCHR$C 147) "DISEGNI 64 "CHR$( 3 7): POKE53280 ,14! «-TEXTS , 1
1 "
2 »
3 n
5"
6 “
~ì "
8
ii
140 PR INT"OUADR IFOGL IO
150 PRI NT "SPECCHIO ?
160 PRI NT "GALLERIA
170 PR INT"ELICA
180 PRI NT "ELLISSE DI QUADRATI -
190 PR INT"GCCH IO
200 PR INT'*CONI 3 D I ME MS I ON 1
210 PRI NT "SORGERE DEL SOLE
£20 PR 1 NT “ «- RITORNO AL MENU'
230 GETINi: IFINt- 1 ’ "THEN230
240 ONV AL ( I N$ > GOSUB 1 000 ,2000,3000,4000 ,5000,6000 ,7000,8000
250 CLRiRESTORE
260 GETPA$: IFPASK > " «-" THEN260
270 GOTO 130
1000 REM * DUAOR IFOGL IO *
1010 «-CLEAR : «-GRAF0,3I POKE53280 ,0 s «-COLOR 1
1020 FGRX=- 160TOIG03TEPI0
1030 «-DRALIX, 100,0,0 ,ABS<X/2) ,0
1040 «-DRALIX ,-100,0,0, -ABS (X/2 ) ,0
1050 NEXT
10G0 FORY=- 100TO100STEP10
1070 «-DRAW-J60 ,Y,0 ,-ABS(Y) ,0,0
1080 «-DRAW1S0, Y,0,ABS (Y) ,0 ,0
1030 NEXT
! 1 100 RETURN
2000 REM * SPECCHIO *
2010 «-CLEAR : «-MGRAF0 , 1 , 1 1 , 15 : POKE53280 ,0
2020 FORN--160TO90STEP4
2030 «-COLOR 4 *RND <13
2040 «-ORAUJ- 360,-100, 0,N, 100,0
2050 «-DRAW-160, 100,0, N, -100,0
£060 «-DRALJ1 60, - 100, 0,-N, 100,0
2070 «-DRAW1G0, 3 00,0 ,-N,- 100 ,0
£030 NEXTN
2030 RETURN
3000 REM * GALLERIA *
3010 PCKE53280 ,5 ! «-CLEAR ! «-MGRAF5 , 1 ,0 , 14 : «-COLOR 1
3020 FORT =0TO 1 000STEP 100
3030 «-ARC0,0,T,100,100,-.3,<f + .3,2* tf/40
3040 NEXT
3050 «-COLOR3 : FORQ=30TO 10STEP-5
3060 «-ARC0 ,0,1 000 ,Q,Q,0,2*if,2*<f/12: NEXT
3070 «-COLORI
3080 «-DRAW-95 , -30 ,0, -35, -30, 1000
3090 «-DRAW95 , -30 ,0 ,35 , -30 , 1600
f 8 - Commodore Computer Club
l-.
cercasi agenti
e distributori
' C
F" n
ir*
H
■
wF dà
' ? .V
Jf ìjB 1
■ 7 H 1
!■ ,”v
L
GRAFICA
r
3100 F ORP = 1 0TO 1 000STEP 1 0
3110 «-C0LOR2 : -«-DRAW-95 , -33 ,P ,95 , -33 ,P iNEXT
3 120 +-COLGR1 Ì+-DRAU0, -30 ,0,0 ,-30,1000
3130 RETURN
4000 REM * ELICA *
4010 PQXE532S0 ,S
4020 ^CLEARi*-GRAF8,7:+C:0L0Rl
4030 F0RX=-7.ST07.9STEP.25
4040 HDRAWX*20,COS(X >#95,0 , <X-,25 >*B0,CO5<X- .25>*S5,0
4050 «-DRAW- 160,0,0 ,X*20 ,COS (X ) *S5 , 0
4060 NEXT
4070 RETURN
5000 REM * ELLISSE DI QUADRATI t
5010 P=rf!CX=l
5020 POKE53280 ,13! «-CLEAR '• +MGRAF 13,0, 1,12
5030 FORAN=0TO <f*2STEPif/l 8
5040 +COLORCX: CK=C5ì+ ! J IFC>1>3THENCZ=1
5050 X7,=C0S(AN>*65
5060 Y7.=SlNfAN)#40
5070 *-ARCX7.,Y7,O,60,60,<i/4+P,S#.f/4+P,«r/2
5080 P=P + if/l8
5080 NEXT
5100 X7=CQS(AN)#65
5110 RETURN
6000 REM * TI VEDO ! ! ! *
6010 +-CLEAR : <-GRAF7 ,6 : PGKE53280 ,7 : vCOLOR 1
6015 FORX I a 0TQ«rSTEF 4
6020 FORX = -<r/2TOrf/2STEPrf/50
6030 +-DRALJ0 ,0,0,X*100 ,COS ( X+X 1 >#100,0
6040 NEXTX
6050 NEXTX 1
6060 RETURN
7000 REM * CONI 3D *
7010 4-CLEAR! «-GRAF6 , 7 s +-CQLQR 1 ! PQKE53280 ,6
7020 FGR2 1 ~ 1200T00STEP -400
7030 FORX1 =- 120TO 120STEP240
7040 FORAN=0TO2*«tSTEP2*rf/30
7050 X=C03 < AN) #50 i Z =S IN< AN) #50
7060 +GRAU0+X1 ,100,60+2 1 ,X+X 1 , - ! 00 ,2 +60+Z 1
7070 NEXTAN
7080 NEXTX 1 SNEXTZ 1
7030 RETURN
S000 REM * IL SOLE SORGE ANCORA *
8010 +-CLEAR : <-M6RAF0,7 ,4 , 1 : POKE53280,0
8020 +COLOR1 : FORNAI TO50
8030 4-DRAW0 ,0,0, (RND ( 1 ) #320 ) - 1 60 ,RND (1 >*90+13, Qi NEXT
8040 +C0L0R2 !FORX=-160TD160STEP20
8050 +-DRAW0 ,0,0,X,-100 ,0sNEXT
8060 FORY=- 100TO0STEP 1 0
8070 +DRAUJ0 ,0 ,0 , - 160 , Y,0 H-DRAW0 ,0 ,0 , 160 , Y,0 :f\EXT
8080 RETURN
20 - Commodore Computer Club
IN CLASSE
QUALSIASI COMMODORE
Tempo di saldi
di A. de Simon e
M
LwM. olio spesso si sente dire che con la
matematica è impossibile unire l’utile al
dilettevole.
Il programma pubblicato in queste pa~
gine, valido per qualsiasi computer Coni'
inodore* si rivela invece utilissimo sia per
imparare con precisione la procedura per
l'applicazione dello sconto percentuale*
sia per valutare con sicurezza f giocando,
la convenienza nell'acquisto della merce
offerta in saldo.
Come gira il programma
Dopo aver digitato il breve listato, da-
te il RUN, Apparirà, sul vostro schermo*
una videata simile alla seguente:.
Indovina lo sconto applicato
Prezzo precedente 77000
Prezzo attuale 73150
Sconto applicalo (% )?
Col finire di una
stagione i negozianti
affiggono, nelle loro
vetrine, cartelli che
assicurano sconti
favolosi. Siete in
grado di valutare, a
colpo d’occhio,
quale è lo sconto
realmente
applicato?
Dovrete, ovviamente, digitare la per^
cemuale che ritenete valida. Nel caso
particolare, battendo il valore 12. e pre-
mendo il tasto Return, il computer
risponderà:
Esagerarci II prezzo, col 12% di sconto,
sarebbe: 677611
Scorno applicato {%)?
Digitando* invece, un valore troppo
basso* come ad esempio 3* il calcolatore
risponde:
E‘ poco 1 11 prezzo* col 3% dì sconto,
sarebbe: 74690
Come avrete intuito la domanda verrà
posta fino a che non avrete indovinato lo
sconto esatto. In tal caso otterrete come
risposta:
Hai indovinato dopo 5 tentativi
Tempo un piegai o= 000345
Commodore Computer Club - 2 1
IN CLASSE
Tale risposta, è inutile di rio, appare se
avrete tentato cinque volte nd dare valo-
ri diversi, mentre il tempo trascorso dalla
Formulazione delta prima domanda è di
zero ore, tre minuti e 45 secondi..
Nel caso non indoviniate dopo dieci
tentativi, il computer. impietosito, forni-
rà egualmente in risposta esatta.
Come funziona il programma
Il listato, talmente breve c commenta-
ta. non merita ulteriori spiegazioni.
Ricorderemo, soprattutto ai princi-
pianti, che con l'istruzione RND(O) è
possibile generare un numero casuale
compreso tra ‘“0" e "TV
Provate a far girare il seguente micro-
programma:
ì PRINT RNDfO): GOTO 1
Vedrete comparire sullo schermo, in
rapida successione, una serie infinita di
numeri decimali. Poiché raramente può
essere utile la generazione di un numero
compreso in un intervallo così insolito, è
possìbile aggirare l'ostacolo moltiplican-
do Io stesso numero per Hi, HX). iono e.
in definitiva, per una potenza di dieci.
Questa operazione, come è noto, “spo-
sta ' la virgola di tanti posti quanti ne
rappresenta il numero degli zeri della po-
tenza di 11 K
Digitale, per chiarire te idee, la se
g eterne riga;
1 PRINT RND<Of 10000: GOTO l
Potrete notare, in questo easo t che la
sequenza di numeri che appare è com-
presa tra + tr e "99W\ Se interessa la
sola parte intera dei numeri che com-
paiono, modificate la riga come segue;
l PRINT fNT(RND(m* 10000):
GOTO l
Nel programma pubblicato, però, t
necessario che il prezzo generato casual-
mente sìa una cifra... credibile. Tutti i
prezzi sono, in genere, arrotondati alle
500 oppure 100 [ire. Per ottenere que-
st ultimo arrotondamento è necessaria
un' ultima, semplice modifica;
1 PRINT INT(RND(0)* 10001))* 100:
GOTO 1
Effettuando la moltiplicazione per
HXJ. tale ultima operazione, aggiunge
due zeri “in coda al numero generato
casualmente.
Il lettore, “'giocando" con l'istruzione
RNDfO), può, a sua volta^ generare una
casistica pressoché infinita di intervalli
numerici. L esperienza acquisita in tal
modo potrà essere sfruttata, ad esempio,
per scrivere programmi in cui si rivela
utile la generazione dei numer casuali
(giochi dì cane, roulette, adventures n
eccetera).
100
REM
INDOVINA LO SCONTO
110
REM
PROGRAMMA
120
REM
PER QUALSIASI COMPUTER
130
REM
A. DE S3NDNE
140
REM
DIDATTICA ’BE
150 :
1B0 PRI NTCHRS C 147 > ” INODU I NA LO SCO
NTO APFLICATO‘'CHR$C 13)
170 X-RNDC01 : RE(1 GENERAZIONE NUME
RQ CASUALE CONPRESO TRA ”0" E
Jl 1 N
160 A- INI CX* 1001 ; REM "ESTRAZIONE”
DI NUNERO CONPRESO TRA ”0" E
” 100 ”
1S0 X-A*130:REN ULTIME DUE CIFRE=
00 C PREZZO CONPRESO TRA 0 E 10
0000
800 Y-RND ( 0 ) : FEN GENERAZIONE UALC
RE CASUALE
P10 B-INTCY*40) : IF B"0 THEN 800 : RE
N "ESTRAZIONE" SCONTO PERCENT
UALE CESCLUSO "0”]
E£0 REM VISUALIZZAZIONE NESSAGGI :
PREZZO PRINA E DOPO LO SCONTO
£30 PRINT: PRINT”PREZZO PRECEDENTE”
X*10
£40 REN APPLICAZIONE DELLO SCONTO
£50 FRINT"PREZZO ATTUALE " I NT C X- ( X*
B/1003 1*10; UI-0: REM U-CQNTATOR
E 01 TENTATICI
£60 TI$-”000000" : REN AZZERAMENTO
DEL TENPO
£70 REN INTERUENTO DEL CQNPUTER N
EL CASO NON SI RIESCA AD INOOU
INARE
£B0 IF L)> 10 THEN PRINTCHRSC 19) "TE
LO DICO IO . . . "E : GOTO 380
£90 INPUT "SCONTO APPLICATO CVJ ”;Z
: bJ^UJ+l :0“INTCX-X*Z/1001*10
300 REN CASO DELLO SCONTO INDOUIN
AIO
310 IF Z~ E=0 THEN 3G0
3£0 REN CASO DELLO SCONTO ECCESSI
UG
330 IF Z-B>0 THEN PR I NT "ESAGERATO !
IL PREZZO, COL"Z ,f :s DI SCONTO
SAREBBE: GOTO £80
340 REN CASO DELLO SCONTO IN5UFFI
CI ENTE
350 IF Z~E< 0 THEN PR1NT”E ’ POCO! I
L PREZZO, CDL"Z "?s DI SCONTO, S
AREBBE: GDTO EB0
3G0 PP I NTCHRS C 1 B > ”HA I INDOVINATO 0
OPO”U" TENTATIUI ! ”
370 PRINT "TEMPO I NP I EGATO-"T IS
380 PRINTCHRSC 17 J "PER CONTINUARE P
REMI UN TASTO"
380 GET A$:IF AS- H " THEN 3S0
400 RUN
22 - Commodore Computer Club
IN CLASSE
QUALSIASI COMMODORE
La merce più economica
confronto. Dopo aver trascorso un pO di
tempo al computer, meglio se insieme
con amici e familiari, avrete sicuramente
acquisito una sufficiente esperienza che
vi sarà utile, tra l'altro, per individuare
quale è la confezione più conveniente di
un particolare prodotto (caffè, formaggi,
detersivi, eccetera).
Come funziona il programma
Anche il listato di queste pagine si basa
sull'utilirzo intensivo della funzione
RND(O). In questo caso* pero» è stato
necessario selezionare con cura il nume-
ro casuale in modo da evitare incon-
gnienze o indovinelli troppo semplici da
risolvere»
La differenza del prezzo unitario, in-
fatti. deve esser modesta in modo che sia
più difficile indovinare quale delle due
merci è più cara dell'altra. Questo pro-
blema è stato risolto escludendo tutti ì
valori unitari che differiscano tra loro di
oltre il 2.0%.
Inoltre i due pesi (e. analogamente, i
due prezzi), devono esser diversi tra lo-
ro» altrimenti lindo vinello è fin troppo
facile.
opo aver dato il RUN* sullo schermo
appare una vidcata del tipo:
MERCE A. N.FTH: 3,5 PREZZO
L. 1400
MERCE B. N ETTI: 8.5 PREZZO
L.3S25
QUALE’ LA PIU 1 ECONOMICA?
lA/B)
Viene, in altre parole, visualizzata una
situazione classica che si verifica nei ne-
gozi che non si attengono alle disposizio-
ni Legislative. A questo punto dovete
premere uno dei due tasti (A/B) per co-
manicare al computer quale delle due
merci considerate più economica, Se. nel
caso particolare esaminato» digitate
“B". otterrete in risposta:
MERCE INDICATA* B
HAI SBAGLIATO
1400 / 3.5 =L, 400 L'ETTO
3X25 / 8.5 =L-450 L ETTO
PREMI UN TASTO
Premendo un tasto qualunque, ovvia-
mente, il computer proporrà un nuovo
Recentemente una
disposizione di
legge obbliga i
commercianti ad
indicare il prezzo
netto unitario dei
prodotti alimentari
Non tutti, però, si
attengono a tale
disposizione e
questo programma
può esser utiie per
individuare, a casa,
quali sono i prodotti
più economici .
Commodoro Computer Club - 23
IN CLASSE
Esempi dei casi evitati:
Peso 4.7 Prezzo 4300
Peso 8.2 Prezzo 2300
Peso 4.7 Prezzo 4550
Peso 4.7 Prezzo 5750
* I lettori più volenterosi potranno inse-
rire facilmente ulteriori modifiche, in
modo, ad esempio, di trasformarlo in
gioco per più giocatori, oppure di indivi-
duare quale fra tre confezioni (e non tra
due ) sia la più conveniente, eccetera,
Peso 5,2 Prezzo 55fX)
Peso 4.7 Prezzo 5500
100
110
120
130
140
150
160
170
1B0
190
£00
210
220
230
240
250
260
270
200
REM QUAL' E 1 LA
REM MERCE PIU * *
REH ECONOHICA?
*
■a
REM QUALSIASI COMPUTER
m
REM A. DE SIM0NE
REM DIDATTICA '86
m
«
PRINTCHRSt 1473 "ATTENDERE * , , ”
GOSUB 350: X-Xl : REM PESO MERCE
A
GOSUB 350 : Y“X1 : I F X-Y THEN 210
: REM PESO MERCE B
GOSUB 350:XB-Xl+!00: XA-X*XB: RE
M PREZZO MERCE A
GOSUB 350: YB~X1*I00: YA"Y*YB: RE
M PREZZO MERCE B
IF XB< YB AND XB/YB< ,0 THEN 200
: REM ESCLUDE DIUARID ECCESSIU
Q
IF YB<XH AND YB/XB<.B THEN 200
IF YB-XB THEN 200: REM ESCLUDE
PREZZI EGUALI
PR INTCHRSK 147 3CHF3 C 13 3 ” MERCE A
* N . ETT I : ”X" PREZZO L,”XA"
PRINT"MERCE E , N * ETTI : ”Y" PREZ
ZO L . " YA"
290
300
t
310
320
330
3*i0
350
360
370
PRINT : PRINT”QUAL ’E ’ LA PIU’ EC
ONDMICA? ( A/BD ” : TI $-"000000”
GET A£ : I F AS-”” THEN PRINTCHRS
( 13 )TI £ : BOTO 300
IF A£“”A” OR A$-”B” THEN DOSU
B 330
GOTO 300
*
*
REM GENERAZIONE NUMERI CASUAL
I
XI "INI C RNDC 0 3*10) + « 5*( RNDt 03 > ,j
5): IF XK1.5 THEN 350
RETURN
3B0 REM UX SUALI ZZAZIONE RISULTATO
390 Z1-XA/X:Z2«YA/Y: POR 1-1 IO S:P
R1NT : NEXT : PRINT”MERCE INDICATA
- ”A$
400 IF ZKZ2 AND THEN 430
410 IF ZB<Z 1 AND AS-"B” THEN 430
420 PRINT”HAI SBAGLI ATCT : GOTO 440
430 PR I NT "HAI I NCQUI NATO! ”
440 PRINTXA”/ "X”-L , "XA/X"L * ETTO"
450 FRINIVA 11 / "Y"-L . "YA/V jr L IETTO"
4B0 PRINT: PRINT "PREMI UN TASTO"
470 GEI X9S : I F XS~ BB THEN 470
480 RUN
24 - Commodore Computer Club
SPECIALE
PROTEZIONI
PER I TUOI PROGRAMMI
li UTILE
COMMODORE 64 & C-128
Protezione antillst
di Sandro Garofalo
I l listato di queste pagine
la visualizzazione su schermo di un
qualsiasi listato basic.
Le operazioni da compiere per
attivarlo sono le seguenti:
* Caricare e far girarare (con un sempli-
ce RUN) il programma di queste pagine.
* Battere il programma che se intende
proteggere oppure caricarlo normalmen-
te da nastro o disco.
* Aggiungere in coda al programma la
riga: 63999 REM
* Digitare SYS 49152.
* Cancellare la riga 63999 prima digitata
(battendo semplicemente 63999 e pre-
mendo il tasto Return)
Come funziona
“Antilisf’ si colloca nella memoria a
partire dalla locazione 49152 e manipola
direttamente le lince del programma
basic,
Il funzionamento ù piuttosto semplice:
ad ogni linea basic viene aggiunta una
REM seguita da alcuni caratteri speciali.
La sequenza completa di tali valori nu~
menci è la seguente:
58 143 34 141 147 34 204
Il numero 58 è il codice ASCII del
doppio punto (0 separatore, come è no-
to, di due istruzioni basic,
L’istruzione REM è invece rappresen-
tata dal valore 143.
34 è il codice delle virgolette ('*).
141 è il carattere speciale che provoca
il ritorno a capo.
147 è il codice di cancellazione
schermo.
Un brevissimo
programma in
Linguaggio
Macchina che può
dare dei filo da
torcere a chi tenta di
esaminare i vostri
programmi in basic.
204 è il carattere shift insieme con
%i V\
Al momento del LIST l'interprete basic
non riesce a scrivere la linea sullo scher-
mo c viene emesso il messaggio “7SYN-
TAX ERRORE.
"Antilist" colloca la sequenza dei ca-
ratteri descritta alla fine di ogni linea de!
programma. Tale procedura si realizza
ricorrendo a due routine delta ROM del
basic (confrontare manuale del Sistema
Operativo):
BLTUC collocata a partire dalla loca-
zione esadecimale A3B8 e LNKPRG
collocata da A533.
La prima sposta in avanti un'area di
memoria e viene “chiamata" 1 per ogni
linea di programma da proteggere, in
modo da creare lo spazio necessario per
inserire la sequenza della REM.
La seconda serve a ristabilire i punta-
lori della catena del basic che, in seguilo
allo spostamento di memoria e Tinse ri -
memo della REM , sono tulli alterali.
Una volta protetto, il programma può
essere salvato o fatto girare rego-
larmente.
E' doveroso ricordare che la routine
" Antilist" non è completamente efficace
per chi tenta di listare il programma pro-
tetto per mezzo di una stampante. In
questo caso, infatti, pur se con difficoltà,
un utilizzatore sufficientemente esperto
riesce a leggerlo.
La routine proposta, tuttavia, è di no-
tevole interesse per la sua brevità e la
consigliamo come base di studio per nuo-
ve interessanti applicazioni nel campo
del Linguaggio Macchina.
26 ■ Commodore Computer Ciub
L’ UTILE
10 REfl ANTI LIST
11 REfl PER COMMODORE 64
12 :
13 REM DI SANDRO GAROFALO
15 REM GENOUA
16 :
17 REfl ROUTINE IN L.N. CHE PROTE
GGE
1B REM DAL LIST I PROGRAMMI IN B
ASIC
£0 :
100 PRIN1CHRSC147) TABI 15)CHR$C 18)
"ANTILIST"
110 CS-CHRSC13) : K-0: FDR 1-49152 TO
49263
150 READ A : POKE I , A : K-K+A : NEXT
130 IF K<>14E13 THEN PR I NT "ERRORE
NEI DATI”: END
140 PRINTCS;CS "CARICARE IL PROGRAM
MA BASIC DA”
150 PRINT "PROTEGGERE E DIGITARE "C
HR$C18)”5Y5 4SI SS ”
300 DATA 173, 1,9, 133, 35, 173, S,B, 13
3,96,56, IBS, 35, £33, 1 , 133,95
305 DATA 133,951,165,36,233,0,133,
252, 133,36,165,46, 133,91 , 165,4
5,133
304 DATA 90,24,105,7,133,09,133,45
, 165,46, 105,0,133,46,133,83,32
306 DATA 1B4, 163, 160, 0, 105, 111 , 132
, 145,251 , 200, 192,7,200,245,39,
51 , 165
309 DATA 24, 165, 251, 105, 170, 1E5,
252,105,0,133,252, 139, 133,251 ,
160,0
310 DATA 177,251,133,95,200,177,25
1 , 133,96,177,35,209,158,165,45
, 133,47
312 DATA 133,49,165,46,133,40,133,
50,96,50,143,34,141, 147,34,204
EXC4LFHA
CEM [A
FORMULA i
Cie ■ SPECTGiJM
ACTION flIKliP
CtìMtLS- SFECI RU M
ATAPI BOO/ 130
0MK TR1ALS
CSM 64
dall'INGHILTERRA i fantastici
TUFFATI NEI FANTASTICO
per vivere nuove emozionanti
avventure piene di suspence e
QUALITÀ PRIZIO soler! 7.900 è la grande proposta
u a e«»A*>iAUk# ___ . ■ t * _* .
MASTERTRONIC per conquistare tanti amici
MasTgflfonic s.n.5. ■ VJe Affuggtart, éZ'A ■ ZtlOÙ - * V Q33&2386
LUTILE
COMMODORE 64
Protezione
Turbo
Software
(fi Giovanni WrreIJi
La protezione del proprio software
dalla copia abusiva è un campo
che prima o poi interessa tutti.
Un semplice programma
richiesto da più parti
D a qualche tempo la rivista "Cornino-
dorè Club “ su cassetta pubblica i propri
programmi registrati col "Turbo Tape",
ausilio indispensabile per gii utenti del
Commodore f>4 c registratore che per-
mette di aumentare di circa IO volte la
velocità di caricamento da cassetta.
Quasi lutti possiedono tale program-
ma e ehi ne fosse ancora sprovvisto può
rimediarvi acquistando una copia della
rivista su cassetta prima citata.
Di seguito riportiamo un programma
che permette la protezione del software
registrato, appunto, in "turbo '.
Pei ovvi ruotivi saranno fornite solamen-
te le istruzioni per un suo corretto uso in
quanto spiegarne anche il funzionamen-
to sarebbe controproducente ai nostri
fini.
Cominciamo subito con Tclcncare le
varie fasi da seguire alla lettera per evita-
re ogn i p< issi bile problema:
1} caricare in memoria il "Turbo Tape \
attivarlo col RUN e dare il comando
NEW;
2 i copiare il listato pubblicato di seguito,
controllarlo fino ad avere Vassoiata cer-
tezza che non contenga errori e salvarlo
(prima di provarlo) sulla memoria di
massa posseduta. Lo si può tranquilla-
mente registrare anche in turbo;
3) inserire nel registratore La cassétta che
dovrà ospitare i due programmi generati
dulia procedura, il primo in linguaggio
macchina per effettuare il caricamento e
ravviamento automatico e f altro che
non sarà altro che il programma die si
vuol proteggere, codificato;
4) dare il RUN al programma che si è
appena copiato e, dopo una piccola
schermata introduttiva, rispondere alle
varie domande che si susseguiranno sullo
schermo Queste sotto volte alla cono-
scenza del modo tn cut parte il program-
ma da proteggere (col RUN oppure et in
SYS) e del nume che gii vogliamo
assegnare;
28 - Commodore Computer Club
L’ UTILE
5) dopn Fultirna richiesta, comparirà il
messaggio di premere i tasti RÈCORD
& PLAY sul registratore. Farlo dopo es-
sersi assicurati che ia cassetta contenuta
nel registratore sia effettivamente quella
che dovrà ospitare il programma protet-
to. Al termine, togliere dal registratore
la cassetta e metterla da parte:
6) seguire le istruzioni che compariranno
sul video, e precisamente:
a) caricare il programma che si vuol
proteggere:
b) digitare SYS 733 e premere Return;
c) re inserire la cassetta dove £ stata effet-
tuata la prima registrazione, battere il
comando precisato sul video (oppure po-
sizionarsi su di esso col cursore) e preme-
re il tasto Return:
d) Premere i tasti RECORD & PLAY
sul registratore:
A questo punto il nostro lavoro è
terminato.
Per l'uso basterà semplicemente:
- caricare il programma utility "Turbo
Tape” e attivarla,
- caricare con un normale LO AD (e non
<-L) il primo programma registrato e
premere la hami spaziai rice quando
richiesto.
Come utilizzare la procedura
Facciamo ora un esempio chiari-
ficatore.
Supponiamo di voler proteggere il
programma "MOTOR MANIA* 1 , la cui
attivazione è resa possibile dal comando
SYS 81 HH) invece del normale RUN,
Per prima cosa caricate in memoria il
"Turho tape’ e attivatelo (vale a dire:
date il RUN e, non appena ritorna il
cursore, NEW),
Fatto questo, predisponete la cassetta
che ospiterà il programma protetto, cari-
cate in memoria il programma per le pro-
iezioni (riportato in queste pagine) e atti-
va telo con un semplice RUN.
Alla prima domanda, con la quale si
chiede se il programma da proteggere
parte col RUN, digitate NO c premete il
tasto Return,
Alla domanda successiva, dove è ri-
chiesta la SYS di partenza, rispondete
con 8(KK) e Return.
Infine, alla richiesta del nome del pro-
gramma da proteggere, rispondete bat-
tendo MOTOR MANIA,
Subito dopo la pressione del tasto Re
tum* compare la richiesta di premere
RECORD & PLAY sul registratore. Fa-
telo dopo aver inserito la cassetta prepa-
rata precedentemente.
Trascorsi circa 20 secondi di registra-
zione, seguite le istruzioni comparse sul
video: Caricate in memoria il program-
ma "MOTOR MANIA” originale, digi-
tate SYS 733 (e Return) e, dopo aver
reinserito la cassetta messa precedente-
menet da parte, scrivete su video <-S*
aprite i doppi apici (le virgolette), pre-
mete Shift+CIr/home, cursore giù, cur-
sore a destra, scrivete PREMERE 5PÀ-
CF,, chiudete i doppi apici ed inserite il
, 1 T I finale.
Fatto tutto questo* premete il tasto
Return, i tasti RECORD & PLAY sul
registratore, La protezione è stata appli-
cata al vostro programma.
Volendo utilizzare questo programma
protetto, si carica in memoria il Turbo
Tape, si riporta la cassetta all'Inizio della
prima memorizzazione, sì effettua un
LOAD * ‘MOTOR MANIA” + Return,
si preme il tasto Commodore al momen-
to del FOUND e la barra spaziatrice
quando compare il messaggio premere
SPACE,
Tutto fi resto, attivazione compresa* è
automatico ed il compito finale è solo
quello di utilizzare il programma dato
che la partenza (RUN oppure SYS a se-
conda dei casi) è automatica.
Per quanto riguarda l'aspetto tecnico*
[ulta la procedura, oltre a decodificare
ed avviare, automaticamente il program-
ma principale, si occupa di disabilitare il
R UN/STOP, RESTO RE, LIST* SA-
VF* <-5 ed anche a controllare se, du-
rante il caricamento del programma
principale sia intervenuto un 7LOAD
ERROR, molto frequente col "Turbo”
I n questo caso si arresta e non dà l’avvio
automatico del programma che potrebbe
□vere conseguenze non certo piacevoli.
In quest ultimo caso l'unico rimedio ù
di riprovare a caricare il tutto e agire* al
massimo, sulla vite di regolazione della
testina del registratore.
Concludiamo avvertendo che, come
sicuramente avrete già capato, questa
procedura è valida per qualsiasi pro-
gramma (in Basico in linguaggio macchi-
na) compatibile col Turbo Tape (ma non
può proteggere se stesso) Qualche pro-
blema può insorgere solamente con po-
chissimi programmi che partono con la
SYS 64738 di reset e che* anche per i
programmi in linguaggio macchina che
partono col RUN* è possibile effettuare
le protezione basata sulla SYS.
Inconvenienti passibili
Con programmi molto lunghi o che
occupano locazioni di memoria molto al-
te può capitare* mentre si cerca di salvare
col comando <-S..., i! programma codi-
ficato, di veder stampato sullo schermo il
messaggio ?OUT OF MEMORY ER-
RO R con il conseguente ritorno del
cursore.
In questo caso una prima soluzione è
quella di inserire, al posto del <-S preci-
sato sullo schermo* il comando <-S
“*■ 1 1
L'altra soluzione, che consigliamo in
quanto non intacca minimamente k> spi-
rito della procedura, è di leggere il pun-
tatore all'inizio delle variabili con it
comando:
PRJNT PEEK(45)+PEEK(46)*25ó
Se il valore che ne risulta è inferiore a
52084 (quasi sempre), allora basterà dare
il comando FOKF 56*200 e poi dare il
<-S originario, ricordandosi alla fine di
spegnere il tutto oppure dì impartire la
SYS 64738 di reset.
Nel caso in cui tale valore fosse supe-
riore a 521184, allora si potrà solamente
□dottare !a prima soluzione in quanto la
seconda provocherebbe pericolose so-
vrapposizioni.
Commodore Computer Club - 29
U UTILE
REM
* *- 1 * -*■
REM ** PROTEZ I DIME PROGRAMMI *
REM ** REGISTRATI IN TURBO *
REM
PER COMMODORE 54
REM ** BY GIOVANNI UERRELL I *
REM ** GIOIA DEL COLLE CBA) *
REM
#••••> * »*• » » • <* »* w «a**» w «•* *
75 REM NON RENUMERARE IL PROGRAM
MA
B0 PDKE S35B0 , 0 : FDKE 535B1 , 0
90 PRINTCHRSC 1593 ;CHR$C147J
100 print’trightkrusi protesi
ONE CRUORE]’'
110 PRINT"[RIGHT]CRU5] turbo sof
TU ìARE CRUOFF3"
150 PR1 NT ”C R I GHT3 C RUS] BY GIOUANNI
UERRELLI C RUOFF3 ”
130 PRINT"C RIGHT3L RUS3GIOI A DEL CO
LLE CBA3 CRUOFF] ”
140 CK-0 : FQR 1-679 TD 767; READ EU:
PDKE I ,GU:CK-CK+GU:NEXT
150 IF CK< > 10241 THEN PRINT'*ERRORE
NEI DATA: CONTROLLARE :END
160 A$= " " : PR I NT "IL PROGRAMMA DA PR
OTEGGERE”
170 INPUT "PARTE COL C RUS3RUNC RUOF
F 3 <S/NV ;A35
1B0 ÌF LEFTSCAS, 13-”S" THEN 570
190 SY-0; PRINT”OUAL E* LA C RUS3SYS
CRUOFF3 DI PARTENZA” ; ; INPUT SY
B00 IF SY< 1 OR SY> E5536 THEN GOSUB
500: GOTO 190
510 F~0:IF SY-64738 THEN SY-3576B:
F-l
550 HI-INTCSY /55G 3 : LO-SY-H I *556
530 POKE 736, LO: POKE 754, LO
540 POKE 737, HI: POKE 755, HI
550 IF F THEN LO-556 : H I -555
560 POKE 755, 76; POKE 750, LO: POKE 7
51 , HI
570 A$- ’’ ” : PRINT”QUAL E’ IL NOME DE
L PROGRAMMA”
5B0 INPUT "DA PROTEGGERE” ; AS
590 IF LENC AI3> 15 THEN GOSUB 500 ; G
□TO 570
300
310
320
330
340
350
360
370
3B0
350
400
410
450
430
440
450
460
470
4B0
490
500
510
550
530
540
S50
560
570
5B0
590
PDKE 646 , PEEK C 53581 3
PRINTCHRSC1473 ”400 SAUE”CHR$C3
4 3 ; A$; CHRSC34) ; ”,1,1”
PR1NT "RUN350 "
FOR P-l TO 1 0 : GET P$:NEXTP
POKE 631, 19: PDKE 635, 13: POKE 6
33, 13: POKE 19B , 3 : END
PRINTCHRSC 1473 ; CHRSC 1593
POKE 770, 157: POKE 771,5
POKE 1050, PEEKC433 : POKE 1051, P
EEKC44 )
POKE 1055, PEEKC453 : POKE 1053, P
EEKC453
POKE 43, 167: POKE 44, 5: POKE 45,
4: POKE 46,3
REM +* COPIA ANCHE QUESTA LIN
EA **
POKE 770 ,131: POKE 771,154
POKE 43. PEEKC10503 ; POKE 44 , PEE
KC 10513
POKE 45, PEEKC10553 : POKE 46, PEE
KC 1 0533
POKE 759,96
PRINTCHRSC1473 "PER COMPLETARE
LA PROCEDURA CARICA IL"
PRI NT "PROGRAMMA CHE UUOI PROTE
G6ERE , BATTI IN”
PRINT”D I RETTO CRUS35Y5 733CRU0
FF3 E POI EFFETTUA UN”
PR I NT ’VS "CHR$ C34 3CHREC 147 3CHRS
C 173CHR$C55) "PREMERE SPACE”CHR
SC 34)” , 1 , 1"
NEL!
PRI NT "QUALCOSA NON UA: RIPETI .
RETURN
DATA 163,555,141,040,003,169,0
50,141 , 103, 195
DATA 169,544,141,051,003,169,1
95,141,005,003
DATA 169,005,141,003,003,076,1
33, 195,169,131
DATA 141,005,003,169,164,141,0
03,003, 165,144
DATA 540,003,108,005,003,165,1
74,133,045, 165
DATA 175,133,045,534,165, 000, 1
93 , 000 , 006 , 500
DATA 009,535,540,016,535,540,0
13,076,544,005
DATA 073,555,540,003,157,000,0
06,535,508,535
DATA 035,094,165,035,145,166,0
76,174,167
30 - Commodore Computer Ctub
OLTRE IL BASIC
Autostart
64
di Pasquale D’Àndrdi
Una semplice e
breve utility per
proteggere i propri
programmi, che
potrà essere
utilizzata ,
limitandosi a
digitarlo e a seguire
le semplici
istruzioni, anche da
coloro che non
intendono
“studiare” il
Linguaggio
Macchina.
Lm. parecchi sarà capitato di caricare un
programma da nastro o da disco c dii consta la-
re come questo, appena terminata ly !asu di
lettura, parta da solo, come se il computer
avesse digitato, da solo, RL’N + Return Na j
tura (mente, oltre ad essere comoda per la
brevità, questa anormale procedura di carica-
mento impedisce all'utente di “sbirciare" nel
programma e di apportarvi e ve ni nuli modifi-
che, Spesso un programma registrato con la
tecnica dell' AUTOSTART {partenza auto-
matica \ non può essere bloccato con la pres-
sione de! tasto RUN/STOF. nemmeno in
compagnia Jet più potente RESTORE Sa-
rebbe molta interessante applicare questa
tecnica ai nostri programmi, irta soprattutto
sapere come si comporta il 64 quando carica
questo tipo di file.
Per fare ciò, parleremo prima di diversi
argomenti che, a p parerli emerite non connessi
da un filo logico, saranno di fondamentale
importanza per il raggiungi mento del nostro
fine Solo in seguito potremo descrivere il
funzionamento della routine che genera
r AUTOSTART
l na panoramica sul basic del 64
Appena acceso, il C-64 si presenta con l\
nota v ideata avvertendoci, con il READY,
che è pronto ed aspetta che noi immettiamo,
tramite la tastiera, un comando o una linea
scrini in basic, convalidata dalla pressione dui
tasto Return.
Ma che eos'È e come funziona il basic del
64 ,f
fi micrQpn messore 65 Uh cioè la " ‘mieme" del
computer, non capisce H basic, ma solo é! Lin-
guaggio Macchina (L.M.). linguaggio non fa-
Cile da apprendere e da usare, ma velocissimo
ed efficiente. Permuto, prima di eseguire un
qualsiasi comando basic, il 65 IO ha bisogno di
un programma in l inguaggio Macchina che
"traduca” il comando in una serie d’istruzioni;
direnarne nte eseguibili dal microprocessore
In altre parole, il 65111 ha bisogno di un
"interprete’'.
Questo traduttore è appunto costituito da
un programma in L.M lungo H Kbylcs che,
grazie alfe ROM possedute dal M f ni e mone
che non si cancellano) ti siede pu t manente-
mente nel computer, attivandosi ogni volta
che lo accendiamo. Il basic fa uso di alcune
ronl me di utilità generale (tra cui quelle che
gestiscono la registra/ ione e la Lettura dei pro-
grammi). che fanno parte del KERNAL (noc-
ciolo), anch'cs?to residente in ROM. per altri
8 K hytcs di memoria
1 vettori
La mappa della memoria delC-64. quando
questo viene acceso, si presenta come in figu-
ra 1. Come sì può notare, essa comprende
65536 locazioni di memoria le quali sono divi-
se in tre gruppi principali:
1/ memoria RAM: si può leggere e ci si può
Scrivere, ma il suo contenuto viene perso
quando si spegne il computer (memoria detta,
appunto per questo, "volatile");
Zi memoria ROM: si può solo leggere, ma £
permanerne;
„V me mona I/O; controlla ri funzionamento
delle periferiche, de! video e del suono.
Commodore Computer Club - 3 7
OLTRE IL BASIC
Figura 1
MAPPA DI MEMORIA DEL C-64
RAM usata dai BASIC
e dal KERNAL
RAM usata dal video
RAM utilizzabile per
i programmi BASIC
0
1023
1024
2048
40959
ROM interprete BASIC
RAM libera a disposizione
deH'utente
Memoria di I/O
i RAM colore
49151
49152
53247
53248
57343
ROM KERNAL
57344
65535
iy Depositare, mediante PGKE. i codici dei
t ome precederti emette affermato, iJ basic
cd il KERNAL risiedono su ROM tessendo
ini modificai? ili, dobbiamo Forbirci passiva-
rne ri re lui lo ciò che ci rifilano.
Ed intani e così se fi lavora in basic, ma se
siamo in grado di scrivere delle routine in
L...M che ri sostituiscami u quelle del basic
fornirò dalle ROM, possiamo mutare il corti"
portamento del computer a nostro piacimen-
to^ Ma, visto che le ramine del basic non sono
ni odi fica bili, in che modo possiamo realizzare
io scopo prefissalo?
Mamma Commodore ha pensalo anche a
questo e ha creato tabelle di vettori ideiti
anche "pini la lo ri’’.) che risiedono in RAM.
Spieghiamoci meglio; il L.M. che costituisce il
basic è dotato di diverse decine di routine a se
stami che realizzano determinate funzioni
(come la stampa sul video di un certo messag-
gio, la decifrazione dei comandi, la loro ese-
cuzione, il controllo degli errori eccetera} c le
più: importanti sono siate "vettorizzate" m
RAM Ad esempio, quando il programma
principale che controlla tutte queste routine
ha "scoperto’ dìe in un comando da noi digi-
tato c’C un errore, non chiama direttamente la
routine che II gestisce. 1 , bensì legge il contenu-
to di due locazioni di due locazioni di memo-
ria RAM consecutive (in questo caso la 76B c
hi Tfiy), saltando alla routine che inizia a parti-
re dall'indirizzo contenuto :si quest t due byte,
Precisiamo che ci vogliono due byte per
codificare un indirizzo, perchè un byte può
contenere valori che vanno da Ga 255 mentre
sappiamo che un indirizzo di memoria può
arrivare fino a 65535 (ulteriori chiarimenti su
questo argomento si trovano nell ‘articolo
" Microgioco da addestramento", comparso
sui numero 23 - Settembre 1985 - di questa
rivista). Il valore contenuto nel vettore si cas-
cola leggendo il secondo byte, moltiplicando-
lo per 256 ed aggiungendo il valore del primo
byte.
Supponiamo, per esempio, che la locazione
76H contiene il valore 139 e Sa 769 il valore
227. Se si moltiplica 227 per 256 (ottenendo
58112) e s.i aggiunge 139, si ottiene l'indirizzo
desiderato: 5825 E In pratica ciò si ottiene
digitando;
PRIMI PEEK(769|*256 + PEEK(76#)
Se, invece di lèggerlo, vogliamo depositare
un cerio valore in un vettore, dovremo divi-
derlo per 256. porre il quoziente nel secondo
byte ed SI resto nel primo. Esempio:
se vogliamo porre l'indirizzo 2049 nel vettore
7(10-701, do\ remo dividere 2049 per 256, otte-
nendo 8 conte quoziente intero ed I come
resto: K va in 701 ed ì in 700.
L' : na schema Oca rappresentazione di quello
che è staio descritto è offerta dalla figura 2.
Ricordiamo che miro ciò avviene sempre ed
automaticamente lune le volle che il baste
deve eseguire una mutine vettori? za m c non
solo quel la che gestisce gli errori, che abbia-
mo riportato a puro titolo di esempio.
Adesso è possibile capire come si possa
intervenire direttamente sul funzionamento
del basii -noiù sufficiente modificare i punta-
tori di queste routine m modo che indirizzimi
ad una locazione RAM e scrivere, a pan he da
questa, una nostra routine mL.M.
Il buffer della tastiera
Digitate questo semplice programmino:
100 IF PEEK(198) < > 10THEN Mi
Dando il REM, il cursore scompare perchè
il computer sta eseguendo un programma- Le
istruzioni della linea 10(1 significano "aspetta
finché il valore contenuto nella locazione 198
non ria 10", A questo punto digitiamo lenta-
mente dieci caratteri a caso notando che sul
video, finché non abbiamo premuto il decimo
tasto, non accade nulla. Poi appare il REA-
DY segnalando che il programma è terminato
e, quasi con temporaneamente, i caratteri che
abbiamo digitato precedente mente vengono
visua lizzati, come se d computer li avesse “ri-
cordati". La stessa cosa succede se il pro-
gramma è scritto in L.M. I! C-64 si “ricorda"
dei caratteri digitati perchè, a mano a mano
die vengono seri tEÌ dall'utente, esso li deposi-
ta in una parte di memoria chiamata RlfF-
FER, situata in RAM dalla locazione 631 alla
640.
il numero massimo di caratteri che si posso-
no immagazzinare in questo buffer è 10 e
questo valore, contenuto nella locazione 198.
viene automaticamente aggiornato dyt coiti
puter a mano a mano che si premono i [asti
Ora si comprende il funzionamento del pro-
grammino; esso aspetta che il buffer si sia
riempilo (cioè che la locazione 198 contenga
10} prima di "uscire". Naturai mente, essendo
m RAM. il buffer è modi fi cabile dall'utente
che deve seguire questa procedura;
caratteri prescelti nel buffer (il primo va in
631. il secondo in 632 e cosi via. fino alla 64tJ).
Precisiamo che i codici sono del lipo ASCII e
la corrispondente tabella carattere -codice vi
trova ndL Appendice F del manuale
d’istruzioni:
2 / introdurre il numero dei caratteri memo-
rizzali ne! buffer nella locazione 19K (per
esempio, nel caso si fossero utilizzati 7 endici,
ci vuole PO K E 198 J);
3y fare in moda che compaia READY sullo
schermo (per esèmpio, far terminare il pro-
prio programma con END o STOP),
Con questo programmino, comparirà la
scritta “64" sullo schermo:
10 PRINT CHRÌ(147): “SONO II
COMMODORE’ 1
20 POKE 631.54; REM 54 è il codice ASCE
di "6”
30 POKE 632.52: REM 52 è it codice ASCII
di 4"
4n POKE 198 .2: REM 2 è il numero dei ca-
ratteri di "64"
50 END
Struttura e collocazione
dei programmi basic
Ogni volta che immettiamo una linea basic.
11 computer la memorizza iti una zona di me-
moria che inizia alLindi rizzo 31 49 e può termi
nure all’Indirizzo 40959. La prima hnca è
quindi posta a pan ire da 2049, Quando digi
liairto LIST, tf computer esamina quella zona
32 ■ Commodore Computer Club
OLTRE IL BASIC
di memoria Campando sul video ciò che in-
contra . finché incontra Ire zeri consecutivi
che indicano appunto la fine del program erta.
Nel caso che le locazioni 2040, 2050 c 2(15 1
contengano propria tre zen. vuoi dire che non
e ‘è programma in memoria e periamo appare
solo READY ( Figura 3). E‘ ovvio che i ire
/eri ili seguito li trascrive il computer tulle le
volle che è necessario (aggiunta, modifica,
cancella /ione di linee basic).
Qualcosa di più sui LOAD e sul SAVE
In genere . quando leggiamo un programma
da nastro (LOÀD 'NOME 1 ') o da disco
(LO AD "NQMET8), esso viene canea tu au-
tomaticamente a partire da 2(49 (caso del
C-64 1 presupponendo che sia un programma
in basic anche se in effetti era staio registrata
da una zona di memoria diversa da quella
adibita ai programmi basic
Se noi digitiamo LOAD ' NOME ’.Lf o
LOAD "NOME “,8,1 il programma si cari-
cherà esattamente nella zona di memo™ da
dove era sialo prelevato.
<..'è anche un caso, utilizzato dalla routine
AUTOSTART > per cui. anche digitando
LOAD "nome” senza porre il "JJ" finale, il
programma si caricherà a partire dalla stessa
locazione da dove era stato registralo. Pur-
troppo ciò non vale per il drive, che ha biso-
gno del "*8,1 " per caricare un programma
senza rilocarlo.
Per salvare programmi in basic, basta il
SAVE "NOME” (con il solilo “,8” finale per
il drive), che salva il nostro programma inco-
minciando da 2049.
Cì sono diverse tecniche per regi si race le-
zioni di memoria che iniziano in locazioni di-
verse dalia 2049, ma ta descrizione di queste
esulano dallo scopo de [Punico lo. Ci basti sa-
pere che il programma AUTO START usu-
fruirà proprio di una di tali tecniche per regi-
strare una piccola parte di memoria diversa da
quella abitualmente dedicata ai programmi
hasic.
D esenzione e funzionamento del
programma
Tra le murine de! basic vettori zzate riuura
fa WARM START ROUTINE, che è quella
che il sistema esegue quando stampa REA-
DY (per brevità ROUTINE READY) Per-
iamo. quando il basic del 64 visualizza REA-
DY. vuol dire che è stala utilizzala questa
routine, la quale ha il suo vettore in 770 e 771
Il valore di questo puntatore, calcolato con il
solilo metodo:
PRlNTPEEK(771) f 25h + PEEK(770)
è uguale 3 42! 15, numero corrispondente alla
locazione d'inizio della mutine READY.
Modificheremo questo puntatore in mudo
che indirizzi ad una routine in LM scritta da
noi. Onesta, ad esempio, avrà il compito di
"forzare” i codici di ' 64" nel buffer di tastie
tu, ottenendo, come risultalo, che ogni valla
che il computer eseguirà la routine READY,
comparirà il numero “64”.
Possiamo notare che il READY appare an-
che dopo il caricamento di un programma;
pertanto per realizzare il nostro Ali TO-
STAR! dovremo scrivere urta routine in
L,M, che forzi net buffer di tastiera il coman-
do RUM + Return dopo aver letto il program-
ma in basic e modificare il vettore di READY
in modo che punti alla routine sopragiiata.
Scriveremo questa routine in una zona di me-
moria libera che va dalla locazione 679 alla
767, proprio al di sotto della tabella dei vettori
(figura 4),
Si tratta, dunque, di registrare due pro-
grammi iti successione sullo stesso nastro
Tutto ciò potrebbe essere facilmente raggi-
rato do chi desideri copiare njo modificare il
nostro programma; basterebbe infatti leggere
solo d secondo programma. Per impedire che
ciò avvenga, dovremo utilizzare due tecniche
di protezione, la prima delle quali disabilita il
tasto RUN/5TQP e la funzione LIST fchc si
ottiene ponendo il valore 227 nella locazione
808) mentre la seconda mette a nero = bytes
che vanno da 2049 a 2(359 facendo in modo
che. anche legge ndo solo il secondo program
Figura 2
IL VETTORE
Locazione
Contenuto
Indirizzo
769
227
x 256 =
50112
768
184
x 1 -
184
TOTALE =
68296
OPERAZIONE INVERSA
58296:256 = 227.71875 da cut 227
.71875*256 = 164 da cut 184
Figura 3
IL PROGRAMMA BASIC
Contenuto
Indirizzo
0
2048
77 ?
j a d
2049
???
2050
777
«Il
Fine programma
0
„ " “ + 1
0
*' " 4-2
0
*' +3
ma, rum sia né li stabile rie eseguibile Ricor-
diamo, infatti, che quando i bytes 2849.21150 e
2051 sono posti a /ero. it basic "crede” che
non vi sin alcun programma in memoria .
Riorganizziamo le idee e descriviamo, pas-
so passo, il fu nzì ima mento de ila routine AU-
TOSTAR t una volta caricalo in memoria il
programma basic che si intende proteggere ;
M Riporta nella zona di memoria che va da
679 a 689 \ byte* che vanno da 21749 a 2059
(cioè i primi dieci byte della parte iniziale del
programma basici azzerando questi ultimi;
lì trasferisce la routine LOADER nella me-
morili che va da 69U a 707 ( il t unzioni! mento
. ddb stessa verrà spiegalo piti avanti);
.V modifica il vettore di READY facendo in
modo che punti alla routine LOADER (fin-
di rizzo di LOADER è 690, pertanto pone 2 in
771 e 178 in 770);
4/ salva la zona di memoria compresa ira 679
e 771; nel caso losco utilizzato il nastro, h
registrazione sarà ef fettunta in maniera cale
che, anche omettendo il “.1.1” dopo il
LOÀD. la routine si posizioni automatica-
mente nella zona da cui ora stala prelevata
Compiute queste operazioni, non ci resta
che registrare con un normale SAVE il nostro
programma proietto.
Vediamo ora che cosa succede quando si
carica un programma protetto con la tecnica
dell’ AUTOSTART
Dando il LOAD, d 64 carica ri programma
che incontra per primo sul nastro, vale 3 dira il
LOADER. nella zona di memoria che si
estende da Ila locazione 674 alla 77L Termina-
ta la lettura, il computer “vorrebbe” eseguire
la routine READY cercandone l'inizio nel
vettore 770-771. Questo però, dopo il carica-
mento. non vale più 42115. mabyiL cioè pro-
prio l'indirizzo della nostra routine L0A-
DER. Una valla attivata, la routine per prima
cosa legge i! programma protetto, poi rimerie
"a pasto” i bytes 2049- 2059 prelevando i valo-
ri originali dalle locazioni; cosi facen-
do rende il programma basic periglia mente
utilizzabile.
Commodore Computer C^b - 33
OLTRE IL BASIC
Figura 4
LA ROUTINE LOADER
Dati BASIC
679
689
Routine
690
in L,M.
767
178
770
2
771
184
768
227
769
Vettore READY (770/771 )
2x256+178=690
Dopo aver eseguito queste operazioni, ri-
mette il valore primitivo (42115) nel vettore di
READY, pone 227 nella locazione 808. disa-
bilitando il tasto Run?stop, e for/B nei buffer
di tastiera il comando R UN + Return sa] lan-
cio. infine, alla originale routine di RE ADY.
Dopo l’cscciizione di tale routine, appare il
famoso READY, ma, come spiegato prece-
dentemente* il computer preleva gli eventuali
caratteri presemi nel buffer di tastiera i quali
Mino appunto “RUNT'-teRetum, In questo
modo il programma basic sì avvia automatica -
mente e non può essere più fermato, essendo
inibito il tasto RUN/STOP
Tutte le operazioni compiute dalla routine
LOADER sono eseguile con una late fulmi-
nei là da impedire a IT operatore di accorgersi
di ciò che sta succedendo.
Final mente, dopo le doverose premesse
teoriche, passiamo ai fatti
Come proleggere un programma
Per prima cosa bisogna digitare il listato
pubblicato in queste pagine, verificarne la
corretta trascrizione e registrarlo, coi nome di
“AUTOSTART'', su una cassetta o su un
dischetto a pane, pre fe ri h il mente airmirio,
in modo che sia di tacile reperibilità. I tei velo-
cizzare la copiatura del listato, si possono tra-
lasciare tutte le lìnee che iniziano con l'istru-
zione REM o con ì due punti. Nella trascrizio-
ne. bisogna porre particolare attenzione alle
linee DATA; in ogni caso il programma si
accorge da solo della presenza Jt eventuali
errori in queste linee visualizzando l'apposito
messaggio Per i lettori più esperti* il listato,
opportunamente disasse mbiato, servirà come
base per uno studio più approfondito della
tecnica delLAUTOSTÀRT e per facilitare
eventuali personalizzazioni.
Benché superfluo, ricordiamo ai princi-
pianti (che intendono utilizzare te tecnica di
protezione senza studiarne il funziona mento)
che devono limitarsi a digitare il programma
basic e seguire le istruzioni fomite qui di
seguito.
Prima di descrivere te operazioni da fare
per dotare di AUTOSTART un qualsiasi prò
gramtna scritto in basic. £ bene fare alcune
premesse:
- Il programma basic pubblicato in queste pa-
gine lo chiameremo “AUTCJSTÀRfL
- Il programma che intendete proteggere de-
ve essere registrato secondo le procedure nor-
malissime (sul disco oppure nastro N.l) col
nome "PROVA" o con altro nome di
fantasia.
- Il supporlo magnetico (disco o nastro) desti-
nato ad ospitare il programma protetto (som-
ma, in realtà, di due programmi) lo chiamere-
mo Disco (Nastro) N.2
Passiamo, ora. alla descrizione delle opera-
zioni da compiere, e che sono le seguenti:
1/ caricare (da disco o nastro) la routine
AUTOSTART;
21 dare il RUN e T alla domanda NASTRO O
DISCO?”, rispondere con "N” oppure "D” a
seconda del supporto su cui desideriamo regi-
strare il programma protetto, non dimenìi
cando dì premere il tasto Return,
V caricare (dalla unità nastro o disco selezio-
nata) il programma "PROVA" che si vuole
proteggere. Chi utilizza il drive dovrà scrivere
il nome per intero (se. ad esempio, il pro-
gramma da proteggere si chiama "PROVA”,
si deve leggere con LO AD ‘"PROVA”, 8 e
NON con LOAD 'TRO*'\8);
4/ inserire il nastro (o il discheito) N-2. e digi-
tare SYS 49132+Retum per provocare la re-
gistrazione del LOADER;
5/ attendere la fine della registrazione e, se si
usa il registratore, riavvolgere il nastro di 3
giri (porre la massima attenzione nel compie-
re questa operazione). In qualunque caso non
cambiare il supporto (che è ancora il N .2);
6/ quando compare il READY che indica il
termine della registrazione del LOADER, di-
gitare, senza cambiare il supporto magnetico,
il comando SAVE TROVA” (+“,8 T * se sì
usa il drive) e premere il tastaRetum* Il nome
del programma da proteggere dovrà essere
uguale al titolo originale tranne il primo carat-
tere che deve essere il carattere "I” (ceco
perchè il nome "PROVA” diventa ‘TRO-
VA”. Pertanto bisognerà digitare SA VE
♦TROVA T oppure SAVE "IRQ VA ’, 8 nel
caso del disco).
Dopo aver effettuato la registrazione de-
scritta al punto 6, il gioco è fatto e per verifica-
re la correttezza della procedura, ravvolgere
il nastro (al disco non serve!) e caricare il
programma con LO AD f registratore) oppu re
LOAD ,l PROVA’\fiJ (disco)
Ora non dobbiamo far altro che attendere:
Il primo programma, partendo automatica-
mente* caricherà il secondo e, resolo esegui-
bile, gli darà L"‘ irreversibile” RUN+Return.
Se si usa il drive e si omette il " J “ finale*
chiedendo il listato si otterrà una fila di carat-
teri insignificanti, Agli utilizzatori del regi-
stratore, giustamente preoccupati dal fatto
che ri avvolgendo il nastro di tre giri ri possa
cancellare il LQADER, diciamo che quesriul-
limo è sa baio in appena sette giri, ma Finrichè
smettere di registrate, il 64 continua per un
po' ad inviare al nastro caratteri privi di senso
che potrebbero com promettere II buon fine
della procedura e che pertanto devono essere
eliminati
Considerazioni
L'articolo contiene vari spunti di esercizio
per il principiente (buffer di tastiera) e per
l'esperto (gestione direna delte registrazione
e della lettura del programmi in L.M.), non-
ché una più generale inquadratura schematica
de! funzionamento del 64.
I primi potrebbero, per esempio, cercare il
modo di scrivere un programma in basic che.
terminando, carichi un altro programma uti-
lizzando appunto la tecnica del huffer di ta-
si Sera; i secondi potrebbero individuare un'ul-
tra tecnica di AUTOSTART (si pensi allo
staci: del 65 li) c al modo di funzionare delle
Istruzioni RTS e RTI ) I! mainiate non
manca, il computer nemmeno, bisogna solo
dotarsi dì buona volontà e iniziare a provaree
riprovare.
34 - Commodore Campai ?r Club
3 REM PROTEZIONE CON
4 REM SISTEMA DI AUTOSTART.
5 :
6 REM DI PASQUALE D’ANDRETI
7 REM RIARDO (CE)
e :
9 G$=CHR$(34 ) : PR INTCHR$< 147 ATT
ENDERE "
11 REM "*** LETTURA DATA E FEMORI
ZZAZIONE L-M.
15 FOR I = 4S15E TO 433 1G: REA
D A: B=B+A : POKE I,As NEXT
20 IF B = 19763 THEN 50
30 PRINT^ERRORE NEI OATfls"
40 PRINT "RIVEDERE IL LISTATO-":
END
50 PR I NT "NASTRO 0 DISCO (N/D)"
55 6ET ME*:IF " " THEN 55
6© IF M£$<>"N B AND l*E$<>"D" T
HEN 55
70 IF ME$= "N" THEN "NASTRO
":60T0 90
7E ME$- "DI SCO “
77 REM *** MODIFICA NUMERO PER IF
ERICA E INDIRIZZO
78 REM *** SECONDARIO SE SI USA
IL DRIVE
80 PQKE 48SS3 ,8 • POKE 43BE5 , 1 !
POKE 43242,8
87 :
88 REM *** ISTRUZIONI
89 :
90 PRINT CHR$( I 47 ) "ORA CARICA IL
TUO PROGRAMMA, PREPARA IL "ME
10© PRINT " (DIFFERENTE DA QUELLO
a ■ «
/
110 PRINT "ORIGINALE) , DIGITA SY
S 43152 + RETURN")
120 PRINT " E ASPETTA CHE LA ROU
TINE VI REGISTRI";
130 PRINT ■ L' AUTOSTART- QUINDI DE
VI";
135 IF ME$- * D ISCO " THEN 150
140 PRINT " DEVI RI AVVOLGERE IL NA
STRO DI 3 GIRI E ■;
150 PRINT "DARE IL SA VE IN MODO CH
E IL NOME SIA UGUALE A QUELLO
i» ■
JE0 PRINT "USATO PER LEGGERLO TRAN
NE IL PRIMO CA";
170 PRINT "RATTERE , CHE DEVE ESSER
E UN “CHR*<34 ) " 1 "CHR*(34 ) " . "
130 PRINT"AD ESEMPIO, SE HAI CARIC
ATO IL PROGRAMMA";
190 PRINT "ORIGINALE CON LOAD "QS
"TEST"Q*", ORA DOVRAI";
192 PRINT "SALVARLO CON SAVE "Q*"l
EST'Q**. "
193 PRINT! PRINT "LOAD "Q*"T -VE
CCHIO “ht*
194 PR INT! PR INT "SYS 49152 -NUOVO
"ME*! PR INT: PR INT“SAVE "Q* " 1 . , .
. -NUOVO "ME*
195 REM ***
197 REM "*** CODICI COSTITUENTI IL
L,M,
193 REM *** INIZIO = 49152: FINE=
49316
199 REM ***
200 DATA 162,10,189,1,8,157,167,2,
169,3,157,1 ,8,202,16,242
210 DATA 162,77,189,97,192,157,178
,2,202,16,247, 169,178, 141 ,2,3
220 DATA 169,2,141,3,3,32,68,192,1
69,2,133,254 , 169,167,133,253
230 DATA 169,253,162,4,160,3,32,21
6,255,169,164, 141,3,3,163,131
240 DATA 141,2,3,96,169,1,162,1,16
0,3,32, 186,255, 165, 183,166
250 DATA 187,164,188,32,189,255,96
,169,1 ,162,1,168,32,186,255,16
0
260 DATA 0,169,49,145,187,165,183,
166,187,164,188,32,189,255,169
,0
270 DATA 32,213,255,134,45,132,46,
162,18,189,167,2,157,1 ,8,202
280 DATA 16,247,162,4,134,198,139,
251,2,157,1 13,2,202,203,247,16
9
290 DATA 131,141,2,3,169,164,141,3
,3,169,227,141,40,3,76,131
300 DATA 164,147,62,117,13
Commodore Computer Club - 35
Probabilmente
Star SG10C è la stampante ideale
per Putente avanzato di Commodore
che come te,
vuole scrivere lettere,
stampare tabulati,
tracciare disegni...
Totalmente compatìbile con il Commodore C64,
alfanumerica e grafica, con f suoi 120 caratteri/
secondo SG 1GC è un punto d'arrivo per f
possessori di Commodore C64, Grazie alia
possibilità dì stampare anche caratteri near letter
Ljuality (selezione possibile con la semplice
pressione di un tasto), SG 1 OC può essere asservita
al Tuo Commodore come una macchina da scrivere.
CARATTERISTICHE TECNICHE
:j Velocità di stampa di 120 caratteri/
secondo, bidirezionale e ottimizzata,
monodi rezi orale in near lette r
qualiiy c grafica.
n Testina di stampa a 9 aghi,
larghezza carta 80 colonne.
o Matrice di stampa: 8x1 1 (standard),
8x6 (grafica a blocchi), 7x60 punti
per pollice (grafica bit irnage), 17x11
(carattere definibile),
_ Stampa in normale ( 1 0 CP I),
condensato [17CPl}, NLQ (10 CPS),
espanso (2, 3 o 4 volte), enfatizzato
e italico.
□ Alimentazione carta a moduli
continui (trattore) e fogli singoli
(frizione).
r Altre caratteristiche: segnalazione
d'errore, caratteri definìbili
dall'utente, autotest, near letter
quality, spoil er per strappo carta,
grafica e indirizzamento di singoli
punti, dump esadecimale,
□ Compatibile con tutti gli Home
Commodore: VIC 20, C 1 6, C64,
C 1 2S > Plus 4.
il tutto velocemente e affidabilmente.
DISTRIBUTORE PER L'ITALIA
-HW-
TJ
StDE e UFF COMM . wg gaf tonte 2U-2QÌ5I m iter**
f et {02} 30 f. 00. Si - 301.00. 91 {8 lime rk. eur.)
Telex n , 313843 CLAMI
Inviacii questo coupon,
ti segnaleremo il nome
e l'indù t//o di
un rivenditore della tua
zona che ti potrà
mostrare la campante
Star SG10 C pei il tuo
Corri modulo, ma
ATTENZIONE!
Se dee i dorai di
acquistare Star SG10 C
l' invio dei coupon
lì darà il diritto ad uno
SCONTO DEL Wl
GRAFICA
Ricorsività e merletti
in Basic:
di Durilo Toma
Una diabolica microprocedura
BASIC per creare velocemente disegni stupefacenti!
“Provare per credere ...”
Creazione di una curva di Peano
Nella figura sono evidenziati 1 primi quattro ordini deila procedura che applicata
a N 1 infinito, fa tendere la figura ad una curva di Peano.
Coma
procurarsi
le routine grafiche
\ nuovi lettori di Commodore Computer
Club torse non sono a conoscerla del
fatto che la nostra rivista ha pubblicato
tempo fa (esaltarne n te i$ul N.14) un pro-
gramma in linguaggio macchina che ag-
giunge nuove, potenti istruzioni BASIC al
C-64
Queste routine, esclusivamente grafi-
che.. consentono di disegnare in tre di-
mensioni in alta risoluzione.
Djgitare il programma è piuttosto lungo
e pericoloso e pertanto sconsigliamo, ai
lettori inesperti, la sua digitazione.
Per venire incontro alle loro esigenze,
tuttavia, la Systems Editoriale invia su ri-
chiesta. in cassetta, le routine grafiche
insieme a tutti i programmi pubblicati sul
M.14diCC.C.
Per avere la cassetta è sufficente invia-
re la modica cifra di 5800 (cinquemila ot-
tocento) lire indicando, owsa mente, sia il
numero di C.C.C desiderato Sia il vostro
nominativo completo. Non si effettuano
spedizioni contrassegno
SYSTEMS EDITORIALE
Servizio arretrati
Viale Famagosta 75
20 142 MILANO
Commodore Computer Club - 37
GRAFICA
jAivete mai sentito parlata delle curva
di Peano? La maggior pane di voi sicura-
mente no* a meno che non siate degli
appassionati di matematica.
Neppure io le conoscevo, fino a quan
do lessi un articolo dedicato a tale
argomento.
La curiosità mi spinse a realizzare un
programma che potesse disegnare alcune
di queste curve, per due motivi: volevo
constatare personalmente la spettacola-
rità di tali "mostruosità'' matematiche l\
soprattutto, mi stuzzicava la dichiarata
impossibilità dì implementare tali proce-
dure in BASIC.
Per capire meglio la spiegazione che
seguirà guardate la figura "creazione di
una curva di Peano", nella quale sono
illustrati i risultati dei van passaggi.
Immaginiamo di partire da un segmen-
to (ordine 0) e dì applicare a questo una
trasformazione "quadrata" nel centro.
Cancelliamo, cioè, il terzo centrale del
segmento e lo sostituiamo con un qua-
dralo di cui non tracciamo il lato inferio-
re (ordine 1).
Consideriamo ora ognuno dei 5 seg-
menti risultanti e su ciascuno applichia-
mo la stessa trasformazione (ordine 2).
Ripetiamo l'operazione sui 25 lati ri-
fH
Provate a digitare una tema dei seguenti valori riportati in tabella Stupende
figure geometriche verranno riprodotte sullo schermo del vostro TV, Come
esercizio, provate a indovinare quale terna di valori dà origine alla fig. H, poi
inviateci la soluzione.
Tipo N. curve Ordine
A
B
C
0
E
F
G
H
I
L
Ecco alcuni esempi di figure {contraddistinte da lettere detrattatelo) che potete
realizzare coi programma di queste pagine. Alcune sembrano dei veri e propri
flocchi dì neve!!
Infatti le curve di Peano richiedono,
per la loro costruzione, l'utilizzo di tecni-
che ricorsive che non sono prerogativa
del BASIC.
Nonostante ciò potrete constatare,
guardando le curve realizzate, che anche
con tale linguaggio si possono simulare
tali procedure, anche se non all'infinito,
e quindi realizzare spettacolari "merlet-
ti" matematici
Una doverosa precisazione: per dise-
gnare le curve è indispensabile caricare
ed attivare le Routine Grafiche pubblica-
te suIN.WdiC.CC.
Gerarchie
Vediamo ora la logica di costruzione
della famiglia di curve prese in consi-
derazione.
sudanti (ordine 3) e poi sui 125 nuovi e
sempre più piccoli segmenti (ordine 4).
Applicando questo procedimento al-
l'Infinito si ottiene una curva di Peano.
Facile vero? Il problema però è imple-
mentare tale algoritmo in BASIC,
Stabilire la lunghezza del lato dell'en-
nesimo ordine è banale: se LO è il lato di
ordine 0, L=UV(3f N).
Le difficoltà nascono riguardo alla di-
rezione in cui deve procedere il nostro
cursore ideale.
Nel primo ordine non ci sono proble-
mi: ipotizzando che parta da sinistra do-
vrà prima "girare" a sinistra (S). quindi
due volte a destra (Di ed infine a sinistra
(S):
Sequenza l— (ST3-D-S)
Nel secondo ordine si ripeterà la se-
quenza l per ognuno dei 5 lati e quindi,
38 - Comm onore Computer Club
GRAFICA
D
n
«> r
V ' J
%
vrff ■* ’ -
* - V
» ' -v,
J(él
v k
*■,*.}*
.V] W
' 'r-j V -
=v
rJ ^
>W?>
[J
V
«
** -^sv
■». ■
43 1
4'' ^
tV','-
' ' S *-_ U ’-j
ly-V». t*
sempre partendo dulL'e&tremo sinistro, il
percorso sarà:
Sequenza 2— (sequenza 1 )-S-{sequenza
t)-D-( sequenza l)-D-($equenza 1}-S
Avrete notato che la nuova sequenza è
simile alla prima!
Si procede di questo passo all'infinito:
Sequenza N— {sequenza N-lbS-
(sequenza N-l)-D-(sequenza N-lJ-D-
{ sequenza N-1J-S
in cui ogni sequenza è determinata dalla
precedente c a sua volta determina la
successiva
Per riuscire a sapere in ogni momento
in quale direzione procedere occorre (se-
condo la soluzione da me individuata)
avere un indice per ogni sequenza (dalla
sequenza N alla sequenza I) che segnali
quale sarà la mossa successiva.
Per aiutarvi a capire, prendiamo come
esempio la numerazione decimale.
Ad ogni cifra da urto a nove possiamo
associare una direzione, che chiamerò
mo (D1)..TD9), ottenendo una sequen-
za sìmile a quelle illustrate pre-
cedentemente.
Vogliamo, partendo per esempio dal
numero 000, arrivare a 999 passando da
tutti i numeri intermedi.
Incrementiamo te unità; da 001 fino a
009 Ciò equivale ad eseguire la serie ds
rotazioni predeterminata.
Se ad ogni rotazione facciamo seguire
un avanzamento otterremo un percorso
Incrementiamo ancora: arriviamo a
010, cioè otteniamo ancora una rotazio-
ne di tipo (DI) e un ulteriore avanza-
mento.
Riprendiamo ad incrementare: da t J 1 1
a 019. ottenendo un nuovo percorso.
Il passo successivo porterà il numero a
020 con relativa rotazione (D2) e
avanzamento.
Si procede in questo modo lino a 099.
À questo punto appare oramai chiaro
che si sono percorse dieci sequenze di
'"unità" e si è completata una sequenza di
"decine"
Coti un ulteriore incremento arrivia-
mo a IfNji cioè iniziamo, con IDI), la
sequenza delle "centinaia \
Quindi ricominciamo a procedere nd
modo descritto.
Arrivati a 999 avremo completato
10|2=1UCI sequenze disunita 1011=10
sequenze di “decine "c I0|d=l sequenze
di "‘centinaia".
Ma, ciò che più conta, avremo percor-
so una dannata curva ricorsi iva di ordine
3.
In questo caso 1 tre indici che hanno
permesso di sapere in ogni momento la
mossa da effettuare, sono stati le unità,
le decine e le centinaia
Possiamo però ricorrere anche agli
dementi di un vettore, cosi da non essere
limitati a sequenze composte da nove
movimenti.
Spero che quanto detto sta risultato
comprensibile, ma se avete difficoltà, n
costruite il percorso con carta e matita e
vedrete che risulterà più chiaro
In ogni caso, per ottenere disegni co-
me quelli presentati nelle figure non è
necessario sapere come funziona la
procedura.
Il programma
Permetterà di creare curve diverse ma
basate tutte sullo stesso principio base
illustrato.
Ricordate, prima di farlo girare, di ca-
ricare Se Routine Grafiche del N. 14 di
CX . C. senza le quali non può funzio-
nare,
Dato il RUN vi verrà chiesto di specifi-
care 3 informazioni.
1/ Tipo dì trasformazione: potete sce-
gliere dal triangolo al decagono. Digitale
quindi la cifra corrispondente al numero
di lati (da 3 a III). Volendo trasformazio-
ni con poligoni di 1 1 o più fati basta inse-
rire la linea
205 DIM D(nn)
dove nn è il numero massimo di lari
consentiti.
Commodore Computer Club - 39
H
GRAFICA
2 j Numero di curve; per ottenere delie
figure chiuse occorre unire tra loro più
curve uguali, quindi risponde con un nu-
mero da 3 iti su. Potete anche superare il
limite di 10 ma, generalmente, non si
ottengono disegni molto belli con più di 8
curve,
3/ Numero d'ordine: per ultimo va speci-
ficato quante volte va applicata la tra-
sformazione e ciò, come avrete appreso
leggendo l'articolo. viene determinato
datfordìne delta rico resone. Più grande è
H numero che impostate, più intricata
sarà la curva ma più tempo occorrerà per
disegnarla. Valori consentiti tra U e 10,
Anche in questo caso si può aumentare il
limite dimensionando il vettore O(nn),
Comunque, data la risoluzione di
320*200 de fio schermo, è inutile spinger-
si oltre il quinto o il sesto ordine
I
Le tre informazioni vanno separate
dalla virgola.
Quindi battete RETURN e inizierà la
'creazione'’.
Quando il disegno sarà terminato il
programma si fermerà per consentirvi di
ammirare il risultato e aspetterà che pre-
miate un tasto. Chiederà quindi se volete
creare un'altra curva.
Nelle didascalie delle figure pubblica-
te sono indicati gli input che hanno gene-
ralo le relative curve: potranno servirvi
da esempio e per controllare che il pro-
gramma funzioni regolarmente.
Se avete una routine di hard -copy
adatta alla vostra stampante, potete inse-
rirla nel listato e fare stampare le figure
più belle.
A questo proposito ricordo che sul nu-
mero 18 di C.CC ne è stala pubblicala
una per la MPS 802, mentre sul numero
10 di Commodore potete trovare quella
per la MPS 801.
Casi particolari
Alcune realizzazioni potranno eccede-
re i limbi di schermo nonostante la para-
rne t rizza zio ne della lunghezza del lato
base.
In tal caso, modificate nella linea 330 il
valore 199 (diminuendolo).
Nella lìnea 320 invece sono definite le
coordinate del punto da cui comincia ìt
disegno e l'orientamento iniziale del
"‘cursore" (dipendente dal numero di
curve dà tracciare).
Volendo ottenere figure diverse (con
trasformazione "esterna” anziché "in-
terna") eliminate il segno meno nell'i-
struzione GR=-2* / P (lìnea 250),
Nel vettore DQ vengono conservali gli
angoli di rotazione della sequenza di tra-
sformazione (linee 260-300). Il primo e
l’ultimo sono sempre uguali e di segno
opposto agli intermedi. La somma totale
deve essere pari a zero, così da poter
ritornare alla direzione iniziale alla fine
dì ogni sequenza .
Il resto del breve listato che fa da con-
torno alla routine principale è facilmente
comprensibile quindi £ superfluo
pa darne.
La parte più ostica va dalla lìnea 590
alfa linea 64(1 ed implementa l’algoritmo
che ho cercato di spiegare con l'esempio
dei numeri decimali.
Qui al posto di unità, decine, eec.,
abbiamo 0(1), 0(2), eec.
P (tipo di trasformazione) determina
quando una sequenza è stata completata
e bisogna passare al punto successivo di
quella di ordine superiore.
Dalla linea 660 alla linea 6% troviamo
la routine che fa avanzare il cursore nella
direzione predeterminata.
Spero con ciò di avere spiegato tutto e
dì non avere detto qualche assurdità par-
lando di curve a me quasi sconosciute.
In caso contrario godetevi il program-
ma che, come direbbero i cinesi, vale più
di mille parole.
Attenzione?!!
Al lettore che per primo invierà i tre para-
metri che consentono dì disegnare la figu-
ra che in queste pagine è contrassegnata
con la lettera "HT, la Redazione invierà
gratuitamente un pacco contenente libri,
arretrali delle riviste, eccetera
Ricordatevi di indicare chiaramente, ol-
tre ai tra parametri richiesti, il vostro nome
cognome ed indirizzo,
SYSTEMS EDITORIALE
Commodore Computer Club
Rubrica "Curve di Peano"
Viale Famagosta, 75
20142 MILANO
40 ■ Commodore Computer Club
100 REM GRAFICA PER COMMODORE 64
1 10 :
120 REM CURVE DI PEANO
130 :
140 REM "CARICARE ROUTINE GRAFICHE
150 REM PUBBLICATE SUL N.14 DI C.C.C.
160 !
170 REM SOFTWARE DI DANILO TOMA
180 ;
130 FRINTCHRS C 147)
260 POKE53230 ,8
210 PRINT-TIPO DI TRASF*, N* DI CURVE, N* D'ORDINE"
220 INPUTP ,S ,N
230 PRINT
240 IFW-0THENM-CLEAR:W“I
245 M3RAF6, ! ^COLORI
250 GR= ^2 * /P s R = ~2*«f/S
260 FOR I =2TOP - 1
270 DC I >=-GR
280 NEXT
290 Dii )=GR*(P-2>/2
300 0 ( P ) =D C 1 )
310 ;
320 X]=0;Yl-99sAN=R/£+tf
330 L- 199*S INCR/2 )/3 tN
340 5
350 FOR I = 1 TOS i REM NUMERO DI CURVE
360 i
370 FORK= 1 TON
380 0 (K ) =0 ‘ REM INIZ1ALIZZA INDICI
390 NEXT
400 :
410 GOSUB660 : REM ELABORA
420 :
430 AN=AN+R i REM DIREZIONE DEL
440 NEXT : REM PROSSIMO LATO
450 !
460 REM PREMI UN TASTO
470 LIA 3 T 198 , 1 : GETAS
480 :
490 4TEXT6,14
500 PR I NT* ANCORA ? <S/N) ■
510 UJAIT198, 1 :GETA$
520 IFA$“ "N"THEhtMD
530 FRI NT "CANCELLO SCHERMO H I -RES? <S/N> 11 : LIA IT 193 , I : 6ETA$
540 W-01 IFAS- rt N*THENLJ- i
550 GOTO260
560 REM ELABORA E DISEGNA
570 REM LA CURVA
580 :
590 K=0
600 K-K+l
610 IFK)NTHEJSRETURN
620 I FO < K ) =PTHENO < K > =0 S GOTO600
830 0(K)^0<K)+1
84 0 AN=AN*DCQOO)
660 X2=X 1 +COS < AN> *L
670 Y2=Y1+SIN(AN)*L
680 H3RAL1X 1 , Y 1 ,0 ,X£ , Y£ ,0
630 X 1 =X2 S Y 1 = Y2
700 GOTO590
Commodore Computer Ciuò ■ 41
DIDATTICA
COMMODORE 64 E PROGRAMMI E.LI.ANA
Imparando ad imparare
Una stellina
passo dopo passo
di IL Matturm Si M. L* Nitti
In quest ultima
puntata impariamo a
verificare un
programma di
E.Li.Ana., e a far
prendere decisioni
alia coccinella.
SI
U pesso e volentieri restiamo perplessi
dopo aver eseguito il nostro programma,
perche non abbiamo ottenuto quello che
realmente volevamo. Dopo aver dato il
comando ESEGUI , ei ritroviamo a vede-
re sullo schermo la coccinella che si muo-
ve in un modo che non ci sembra “giu-
sto’ (ma questo calcolatore non capisce
proprio niente ?!) oppure vediamo risul-
tali numerici che non ci soddisfano. Que-
sto chiaramente pub succedere con qual-
siasi linguaggio. In termine tecnico, l’o-
perazione di verifica di un programma si
chiama “debug’ 1 , À seconda del tipo di
calcolatore usato c dei tipo di linguaggio,
esistono programmi più o meno sofistica-
li per compiere questa operazione.
Per poter capire più facilmente dove
abbiamo sbaglialo, E. Li, Aita cì viene in
aiuto con ìl comando diretto:
PASSO-PASSO
Mediante questo comando, impartito
prima dell’esecuzione, vedremo nella
parte più alta dello schermo l’istruzione
che in quel momento viene eseguita. Per
continuare nel lavoro, sarà necessario
premere ogni volta la barra spaziatrice.
In questo modo si puri osservare lo scher-
mo quanto tempo si desidera, e indivi-
duare quindi molto chiaramente quale
passo" o linea di programma, dà luogo
a risultati indesiderati,
Per utilizzare tale possibilità dovrete
quindi, una volta scritto il programma,
dare il comando PASSO-PASSO seguito
da ESEGUI, Per interrompere questa
particolare esecuzione e tornare alla pa-
gina di QUADERNO, basta premere il
tasto R UN/STOP.
Immaginate di voler disegnare una
stellina Come si può procedere?
Scriviamo anzitutto le lìnee che per-
mettono di disegnare una punta di lun-
ghezza L:
10 ALBUM
15 CESTINO
20 MATITA
25 VARIABILE L= 10
200 AVANTI L
210 DESTRA 30
220 INDIETRO L
230 FINE
Diamo ora i due comandi PASSO-
P ASSO e ESEGUI. Osservato il risulta-
to sullo schermo, vediamo che è necessa-
rio far voltare a sinistra la coccinella per
disegnare una seconda punta
Aggiungiamo perciò:
30 SOTTOPROGRAMMA 300;2
100 LINEA 100
300 SOTTOPROGRAMMA 200:1
310 SINISTRA 90
320 TORNA
modificando la linea 230 in
23fi TORNA
In questo modo usiamo le linee 200-
230 come sottoprogramma che genera
una punta, la linea 300 come sottopro-
gramma che genera la punta e h rotazio-
ne in vista della punta successiva.
Ora è sufficiente dare il comando
ESEGUI per avere l'opzione passo per
passo, che rimane abilitata. Osservate
che all a hne la linea IOTI rimane in esecu-
zione finché non premete R UN/STOP
200 0U0NTI <
■*2 - Commodore Computer Club
DIDATTICA
anziché seguire una sola lìnea di condot-
ta. E-Li.Àna, d propone per questo sco-
po l'istruzione SE, che ha la seguente
forma :
(tinca) SE (condizione);
ISTRUZIONE!
(linea
successiva) ISTRUZIONE^
TI risultato è il seguente; se la condizio-
ne ò vera, si passa ad eseguire l'istruzione
1 e poi in sequenza l'istruzione 2; se la
condizione è falsa, l'Istruzione l non vie-
ne eseguita.
Vediamo un semplicissimo esempio,
per calcolare il maggiore tra due numeri
A e B:
Benissimo! Tutto funziona. Ora perù,
prima di fare la prova successiva, diamo
il comando
NORMALE
per eliminare l'opzione PASSO-
PASSO. Resta ora da capire con quante
punte sarà completata la stellina.
Proviamo a sostituire, nella linea 30, il
parametro di chiamata 2 con il valore fr:
30 SOTTOPROGRAMMA 3U0.6
aggiungendo inoltre
35 VOLA
40 AVANTI 30
20 MATITA
25 VARIABILE L= 10
30 SOTTOPROGRAMMA 300:6
35 VOLA
40 AVANTI 30
100 LINEA 100
200 AVANTI L
210 DESTRA 30
220 INDIETRO L
230 TORNA
’30fl SOTTO PROGRAMMA 200; 1
310 SINISTRA 90
320 TORNA
Decisioni nel programma
À volte scrivendo un programma s
desidera poter prendere strade diverse.
Massimo tra due numeri A , B
10 QUADERNO
15 VARIABILE B=10
2U VARIABILE À=5
25 VARIABILE M=A
30 SE B>A; VARIABILE M=B
35 SCRIVI IL MASSIMO TRA "A"
E +, B" E" ' l M“
40 FINE
La variabile M conterrà, alla fine del-
l'esecuzione, il massimo tra A e B. Si
assegna ad M il valore A (linea 25); se
vale la condizione B>A .alia variabile M
viene assegnato il valore B (linea 30), Nel
caso in cui la condizione non sia vera,
l'istruzione VARIABILE M = R non vie-
ne eseguita e si passa direttamente alla
per allontanare la coccinella dalla stelli-
na e pmer vedere meglio l'effetto finale.
Vedrete formarsi una stellina a sei punte
proprio perfetta. Notate che, se nella li-
nea 25 modificate iì valore di L, potrete
disegnare stelle dì grandezza diversa. A
questo punto potete sbizzarrirvi nella
creazione di stelline più o meno grandi,
ed anche con un numero diverso di pun-
te, se modificate 1‘angolazione prodotta
dalla linea 310.
Ecco qui tl listato completo, per chi
desidera vedere subito i] risultato senza
seguire in dettaglio tutte le spiegazioni:
Stellina a sei punì e
10 ALBUM
15 CESTINO
Commùùore Computer Club - 43
DIDATTICA
stampa dei risultali. Nell’esempio, i valo-
ri assegnati ad A e a B sono rispettiva*
mente 5 c IO e il massimo risulta essere B ,
Provate ad eseguire il programma con
valori differenti.
p
Vediamo ora un esempio un po' più
complicato: il càlcolo della potenza N di
un numero intero positivo A. liceo il
listato:
Potenza N-ESIMA dì A
10 QUADERNO
15 VARIABILE A=3
20 VARIABILE N=5
25 VARIABILE F=l
30 SCRIVI CALCOLO
LA POTENZA
■*N " DI “A”
35 VARIABILE P=P + A
40 VARIABILE N= N-l
45 SE N— 0; LINEA 55
50 LINE A 35
55 SCRIVI IL RISULTATO E' “P”
611 FINE
Nella linea 35 viene eseguita, passo
per passo, la potenza desiderata: ali ini-
zio in Psi ha 1. poi A. poi A* A, eccetera;
ogno volta ohe si esegue un prodotto, N
viene deerementato di una unità. Nella
linea 45 si controlla il valore di N ; se
N>0 si torna alla 35 ad eseguire ancora
un prodotto: quando N diventa 0, Tese-
eruzione passa alla linea 55 e i! procedi-
mento è concluso.
In questo programmino, nelle linee
35-50 è stato realizzato un "ciclo” o
'loop"; una serie di istruzioni viene ese-
guita un certo numero di volte (N in que*
sto caso) finché si verifica una precisa
condizione (nellesempio: N“ 0)e il ciclo
è concluso. Per chi conosce il basic, la
medesima struttura logica à realizzata
con r istruzione FQR seguita daNEXT,
La tela di Penelope
Nella prima puntata di questa rubrica
(n, 24 di C.C.CIub - ott,S5f abbiamo vi-
sto. tra le istruzioni dì base per la cocci-
nella, anche il comando GOMMA. Uri-
ti/zabiìc da programma, questo coman-
do ordina alla coccinella dì cancellare,
d’ora in avanti, tutte Ee linee già tracciale
che incontrerà sul suo cammino.
Ora vi proponiamo un semplice listato
che mostra come, unendo l’uso di una
variabile al l'uso dell ‘istruzione SE, si
possa costringere la povera coccinella a
disegnare e poi subito dopo cancellare la
stellina, senza mai fermarsi.
Disegna e cancella
10 ALBUM
15 CESTINO
20 MATITA
25 VARIABILE L— 20
30 VARIABILE G=G
35 SOTTOPROGRAMMA 300:6
40 SE G— 0; LINEA 60
50 MATITA
55 LINEA 30
60 VARIABILE G=1
65 GOMMA
70 LINE A 35
100 LINEA 100
(seguono le linee 200-32(1 del programma
Stellina)
L'idea fondamentale del programma
sta nella definizione c modifica della va-
riabile G. In pratica, esistono due Hl stati"
della coccinella: stato G— (I, in cui dise-
gna; stato G = l, in cui cancella. Gli siati
vengono alternali, assegnando di conse-
guenza la direttiva GOMMA o MATI-
TA. Quesio procedimento può essere
esteso ad altri usi. e opportunamente
modificato.
Per finire, vi lasciamo cog La proposta
di realizzare un programmino che, utiliz-
zando Formai sfruttai issi ma stellina a sei
punte, costruisca nella pagina di album
varie stelline con lati di Lunghezza diver-
sa, eventualmente assegnali a caso.
Termina, con questa puntata t fa "chiac-
chierata 7 Bui corretto utilizzo de! pogrom-
ma E. LIANA, pubblicato sulla rivista su
cassetta Commodore Club edito dalla no-
stra stessa casa editrice.
Coloro che intendono procurarsi sia i
fascicoli arretrati di C.C.C. che trattano
questo argomento, sìa il nastro-cassetta
contenente il linguaggio E. U.ANA. posso-
no telefonare in redazione ( 02-8467348 )
per uletehon informazioni.
Da Computer a Personal Computer
La nuova nata della Systems si rivolge
contemporaneamente agli utenti Com-
modore, Sinclair ed MSX proponendo,
in particolare, listati scritti nelle tre ver-
sioni La collaborazione dei lettori esper-
ii è gradita, appunto, per L adattamento
di programmi "difficili” a lutte le
macchine.
Commodore Computer Club
DIDATTICA
VIC 20, C-64, C- 16, PLUS 4, C-128
"Spaghetti Basic"
Impanare
a sbagliare
di ArcssiirtdrD de Sinmn*
Mei numero scorso avevamo proposto alcuni esercizi utili perfino per chi
non possiede un calcolatore,
Ci auguriamo che nel frattempo abbiate provveduto ad acquistare un
Commodore e verificato Tesilo degli esercizi stessi.
Riportiamo^ ad ogni buon conto, sia le domande che le soluzioni,
N.B, fi simbolo (R) sta per ‘‘Premere il tasto Return ".
Attenzione anche a non confondere il tasto alfabetico "O* 1 col tasto
numerico zero (0).
Ecco la seconda
puntata su come
affrontare il nuovo
oggetto misterioso
che è entrato (o sta
per entrare) nella
vostra casa: il
computer ,
Commodore,
naturalmente la
terza ed ultima parte
verrà pubblicata nel
prossimo fascicolo.
Commodore Computer Club - 45
DIDATTICA
Esercizio
Soluzione
PRINT 123 +233+45
(R)
40?
PRINT 2 '(4+5/2)
(R)
13
PRINT (5+7) * (0+3)
(R)
132
PRINT SOR (16)
(R)
4
PRINT 52
(R)
52
PRINT
(R)
Rigo vuoto
PRINT 5 SQR{2+7)
(Ri
5 3
Problemi:
* Calcolare l'area di un quadrato di lalotS:
PRINT 8*8 (R)
64
* Calcolarne il perimetro:
PRINT 4*8 (R)
32
« Area di un triangolo rettangolo isoscele con cateto— 10
PRINT 10*10/2 (R)
50
• Calcolare ! 5 i poteri usa del triangolo precedente:
PRINTSQR(10t2+l0T2)(R) 14.1421...
• Calcolare la circonferenza di raggio
10:PR1NT2'3. 1415*10 (R) 62.8318...
m Calco! are l 1 area de I cerch io precedente:
PRINT 3.1415*10*10 (R) 3141592,..
" Calcolare l'j.VA (18%) da pagare sulla cifra di 100000
PRIM1 1 00000' 18/1 00 (R) ™000
eseguito c che viene vis un li mito n! siiti
posto il messaggio di errore:
7SYNTAX RRROR
READY
Esaminiamo iti dettaglio ciò che è
accaduto:
1/ Quando abbiamo premuto il tasto dì
ritorno carrello dopo aver battuto il tasto
" + ". il computer ha cercato di “interpre-
tare" ciò che avevamo digitato.
Il primo carattere che incontra £ P se-
guito da R,LN,T. La parola PRINT. che
appartiene al “vocabolario" (elenco di
parole chiave) in possesso del computer,
rappresenta un preciso comando di
stampa e significa esattamente: Prepa-
rati a visualizzare sullo schermo del com-
puter i dati, opportunamente elaborati,
che tra breve incontrerai",
2/ I caratteri presenti dopo PRINT so-
no, nel caso esaminato, numerici (123).
Il Sistema Operativo, a questo punto* sa
che gli verrà tra breve richiesto di “trat-
tare 11 il valore 123, Una conferma di ciò 1
la trova ndl'interpretare il carattere suc-
cessivo, al segno più (-K), e si predispone
ad effettuare una somma con il valore
numerico che. non ha dubbi, incontrerà
tra breve, ma...
3/ h .. sorpresa: il computer non trova
alcun carattere e ne deduce, nella sua
infinita sapienza, che l’operatore si è di-
stratto o che gli ha voluto fare uno scher-
zo, Nel dubbio, il calcolo non viene ese-
guito c viene visual i//.ato un discretissi-
mo messaggio di errore fortunatamente
privo di imbarazzanti commenti sulle fa-
coltà intellettive del l'utilizzato re,
er usare con padronanza un qualsiasi
oggetto è necessario utilizzarlo cercando
all 'inizio di sbagliare a bella posta il piu
spesso possibile in modo da individuare
più facilmente, durante il suo uso norma-
le, eventuali disfunzioni, L’esperienza
accumulata in casi semplici sarà prezio-
sissima per riconoscere inevitabili errori
di battitura come pure incongruenze di
calcolo.
La stessa cosa vale |>ei chi legge queste
pagine: proviamo a vedere che succede
se digitiamo in modo errato i semplici
comandi appresi finora.
Invece di digitare:
PRINT 123 + 456 (R)
digitiamo:
PRINT 123 +
ed ovviamente il tasto Return { non di-
menticate mai di premere Return altri-
munti il Computer non può eseguire
l'ordine).
Notiamo con sorpresa che la somma
(ma quale somma, del resto?) non è stata
4/ A questo punto il computer, per non
appesantire l’atmosfera, comunica che è
pronto (READY,) ad accettare altri or-
dini e fa lampeggiare il cursore come se
nulla fosse accaduto,
L'esperienza effettuata dimostra di-
verse cose utili:
* fi linguaggio usalo dal computer è un
hnyiui^iif in/rr prette ( ió vuol dire dio
quando chiediamo di eseguire un'opera-
zione {servendoci, ripetiamo, del tasto
Return), il Sistema Operativo legge ca-
46 - Commodore Computer Club
DIDATTICA
T
tinture per carattere l’ordine stesso c so-
lo sr E alle i risulta in regola esso viene
eseguilo.
Se invece l'ordine richiesto non rispet-
ta i canoni stabiliti, l'elaborazione incor-
so viene interrotta ed tm messaggio viene
emesso come avvertimento. Tocca all’o-
pera torc indovinare il perche della se
gnalaziorce c porvi rimedio,
* Nulla puri essere sottinteso. In caso di
somma di due addendi (= numeri da
sommare ira loro) di cui uno nullo, que-
sto deve essere esplicitamente indicato
con 0 (attenzione a non confondere il
tasto numerico /ero "0“ col tasto alfabe-
tico "O"). Esempio:
PRINT 123 + 0 (R)
PRINT4'HJ+5-H)(R)
Si ricorda che il segno della moltiplica-
zione (per) nei calcolatori è sostituito
da II asterisco ( *). Per moltiplicare 1(1 per
2. ad esempio, si ricorre alla simbologia:
PRINT 10*2.
Commettiamo ora un altro errore:
PRGNT 123 + 456 (R)
Anche in questo caso viene emessa la
stessa segnalazione di errore. Stavolta,
però, gli addendi sono stati scritti in mo-
do corretto. Errato è invece l'ordine
(PRONT al posto di PRINT) che non
viene ovviamente considerato esìstente
nella tabella delle parole-chiave che i!
computer ha, comunque, scrupolosa-
mente esaminato dalla prima all'ultima.
In conclusione è sufficiente un solo
sbaglio nella battitura per fare apparire
messaggi di errore.
Alcuni computer (come il C16. il
PLUS 4, il CT28) segnalano il punto esat-
to in cui viene riscontrata ] ‘imprecisione
facendo lampeggiare il comando che ha
dato origine alla segnalazione, Il C64 cd
il Vìe 20, purtroppo, non possiedono il
tasto HELP che consente questa facilita-
zione ed è quindi compito de 11’ utilizzato-
re rintracciare t3 motivo della mancata
esecuzione debordine
Operazioni contemporanee
Se vogliamo eseguire due somme non
£ necessario eseguire prima 3 'una e poi
l'altra. Le due richieste di calcolo posso-
no essere poste sullo stesso rigo, a patto,
ovviamente, di seguire alcune semplici
regole dì "sintassi"’ (non dimentichiamo
che stiamo utilizzando un linguaggio, il
basic, dotato di regole sintattiche come
qualsiasi altra lìngua), Nella maggior
parte dei computer in commercio due
ordini diversi sono accettati purché ven-
gano separati dal carattere di doppio
punto (:) r E' bene notare, quindi, che
questo carattere, contrariamente a quan-
to sembri a prima vista, assume un signi-
ficato compiei a mente diverso da quello,
comunemente noto, di "diviso" utilizza-
to come sìmbolo della divisione.
Esempio:
PRINT 123+45ó:PRINT 789+122 (R)
Questo modo di operare consente di
risparmiare spazio sul video dei compu-
ter oppure, in alcuni casi che esaminere-
mo, di premere un minor numero di ta-
sti, Si badi bene che talvolta a causa del
numero limitato di caratteri per ciascuna
riga, é probabile che, nel digitare più
ordini concatenati, alcuni di essi risultino
interrotti su di una riga di schermo c
continuino SU quella successiva, come ad
esempio (caso dei Vie 20):,
f A
; PRINT 123456 +7890: PR
l INT 100 +478 (R) ■
\ _/
(Il primo rigo contiene 22 caratteri,
compresi gii spazi, ed il secondo ì
rimanenti).
Nel caso invece di un computer da 40
colonne come il Commodore 64, si può
avere un'analoga difficoltà come nell'e-
sempio che segue:
PRINT 1234 + 5678:
PRINT SQR(12*44): PR ■
INT 456/789 (R),
Nei casi appena visti l'insolita divisio-
ne della parola PRINT o dì altre. .. “co-
se" (come numeri e comandi), non deve
essere considerata come una imprecisio-
ne che può causare errori di interpreta-
zione da parte del computer. Ciascun
computer, infatti, "vede" una serie di
caratteri come tm 'unica lunga linea. Nel
caso del Vie 20 è possibile digitare fino ad
88 caratteri consecutivi prima di battere
il tasto di ritorno carrello (in caso conira
rio viene emessa una segnalazione di er-
rore). Nel Commodore 64 i caratteri ac-
cettati sono 80 che corrispondono a due
righe consecutive (il video è del formato
25 linee di 40 caratteri ciascuna). T unì gli
apparecchi considerano, in ogni caso, la
fila di caratteri da “trattare" come un'u-
nica riga la cui lunghezza viene misurala
dal primo all'ultimo carattere battuto,
Ciò che appare sul video , e le eventuali
insolite divisioni di parole e comandi,
danno fastidio solo... all "utilizzatore: il
Sistema Operativo non le nota affatto.
Dimostriamo ulteriormente che il ba-
sic è un linguaggio interprete. Battiamo:
PRINT 123+456: PRONT 2+2 (R)
Otteniamo come risposta:
579
7SYNTAX ERROR
READY.
]J computer, infatti, legge ed interpre-
ta. carattere per carattere. PRfNT 123 +
456. Dopo quest'ultimo valore incontra
il carattere due punti, deduce che listru-
/ione appena incontrata termina in que-
sto punto e la esegue senza indugio dan-
do come multato la visualizzazione del
valore-somma 579,
Subito dopo si appresta ad inierpreta-
re le parole chiave successive al doppio
punto {che ricordiamo, non significa “di-
viso") ma incontra alcune difficoltà
(PRONT invece di PRINT), interrompe
il lavoro ed emette il messaggio.
Il linguaggio, dunque, lavora fino a
che non incontra incongruenze tra ciò
che gli viene richiesto di interpretare o
elaborare e ciò che invece gli è stato “in-
segnato' 1 , vale a dire le rigide regole sin-
tattiche memorizzate da qualche parte
airintemo del computer c sempre con-
trollate al momento di eseguire ordini.
Abbreviazioni possìbili
I Commodore accettano "abbrevia-
zioni” di comandi lunghi in modo da evi-
tare all'ut ì lizza torc la fatica di haitcrc
molti tasti. TI comando più noto é pro-
prio PRINT che può essere sostituito dal
punto interrogativo.
Commodore Computer Club - 47
DIDATTICA
• smTt* tì ' jo: Ci- 'iliaco
Ad esempio invece di batterei
PRINT 2+I(R)
è sufficiente digitare:
? 2+2 (R)
A questo punto, per consentire »! let-
tore che ha appena aq instato un personal
computer, come a quello che,,, lo sogna
ancora, proponiamo una sene di esercizi
da eseguire dapprima con carta e penna e
poi col calcolatore per la verìfica:
Che cosa accade se digitiamo:.
a} PRINT 123 (R)
b) PRINT 123*456: (R>
c) ? 123::: PRINT 123+20*1 (R)
ci) PRINT 123,54 *2 (R)
e) PRINT98-251:?:PRIN 3+98 (R)
0 PRINT 22+45*27/12-73 (R)
g) PRINT (22 +45}‘ 27/(12-73) (R)
Risposte
Ecco che cosa “pensa" il computer do-
po che premiamo il tasto Return nei vari
esercizi proposti:
a/ Il computer segue il ragionamento:
“Mie stato ordinato di scrivere (FRINÌ)
il numero 123; poiché la riga termina qui
(R) eseguo la visualizzazione di 123 e mi
metto a disposizione per altri ordini”.
bj “Scrivo il risultato del prodotto ( * ) di
123 x 456. 1 due punti che incontro subito
dopo mi indicano che dovrebbe esserci
un altro ordine da eseguire. Ma... non
trovo nuiPaltro che il carattere di termi-
ne riga (R). Termino dunque di operare
$ent& emettere un messaggio di errore
dato che errori non vi sono.”
e/ 'Scrivo il numero 123. Il gruppo di tre
doppi punti valgono come se fossero uno
solo, AI rigo successivo scrivo il risultato
della somma 123 +200“ ,
d / “Il numero degli spazi dopo l ordine
non mi fanno nè caldo nè freddo: eseguo
Perdine come se le cifre fossero ravvici-
nate. L'unica differenza consiste nel fat-
to che mi hanno fatto perdere un pò di
tempo per riconoscere (e scartare) i ca-
ratteri che non hanno senso (spazi bian-
chi detti anche “blank"). Considerando
che però viaggio alla velocità di un milio-
ne di operazioni al secondo../'
e/ “Visualizzo la differenza 98-251. AI
rigo successivo scrivo... nulla, e mi bloc-
co al terzo ordine: Che diavolo vorrà dire
PR1N ? Ma guarda un po' che mi doveva
capitare!”
ff “Finalmente qualcosa di meno ele-
mentare! Dunque., eseguo dapprima la
moltiplicazione, poi la divisione e infine
le somme algebriche a meno che...".
g/ non vi siano le parentesi. Il loro
contenuto va risolto con assoluta priorità
rispetto alle cifre presenti al di fuori di
esse. Un controllo però va fatto prima di
iniziare il calcolo: vediamo... una* due,
parentesi aperte... una, due* parentesi
chiuse. Tutto a posto: il numero delle
parentesi a pene è eguale a quello delle
chiuse. Eseguo correttamente il calcolo
e , almeno per oggi* basta con ì SYNT AX
ERROR,
Provate ad alterare il numero di paren-
tesi aperte o chiuse oppure ad insenre il
carattere di duppio punto (:) dove non
serve: imparerete in tal modo altri casi in
cui è possibile ottenere segnalazioni di
errore.
Livelli di parentesi
A scuola abbiamo imparato a servirci
di tre livelli di parentesi (Graffe* Qua-
dre, Tonde). Questo modo di operare è
però utile solo per facilitare la “lettura"
dell'espressione matematica alTindivi-
duo*.* umano che la legge.
Il computer non ha difficoltà ad inter-
pretare \] corretto odine di lettura,
Esempio:
a/ A scuola...
b / ...col personal computer...
PRINT 4- (5 +2* ( (3 +2 J/4-7/Ó ))
Come è facile notare c'è indubbiamen-
te, da pane di noi,., umani, una difficol-
tà di “lettura^ 1 nel secondo modo rispetto
al primo,
I tre tipi di parentesi e la scrittura sotto
forma di frazioni sono indubbiamente
più semplici se scritte come abbiamo im-
parato a scuola, Purtroppo non c'è altro
modo di esprìmere l'operazione da effet-
tuare ne! caso di calcoli a più livelli di
parentesi. Si rassicuri, comunque, il let-
tore: è solo questione di ahi indine e di
esercizio: dopo un pò di tempo scompa-
rirà ogni difficoltà sia neirimpostare
un'espressione matematica sia nel
“capirla”*
In ogni caso non ricorreremo, in que-
ste pagine, ad espressioni cosi
complesse.
Le variabili
Abbiamo visto poco fa che con un per
sonai computer è possibile realizzare le
stesse funzioni dì una calcolatrice tasca-
bile con molte differenze positive: sullo
schermo del calcolatore (quasi sempre
rappresentato dal televisore domestico)
rimangono visualizzate le ultime opera-
zioni compiute ed è più agevole un con-
trollo da parte dciroperatore Quando
però lo schermo viene riempito, il calco-
latore effe o ua automaticamente il cosid-
detto “scrolli ng", vale a dire lo scorri-
mento della pagina video verso l'alto.
48 - Commodore Computer Club
DIDATTICA
con la conseguenza di cancellare i carat-
teri delle prime righe in modo da lasciare
le ultime ( quelle, cioè, in basso) libere di
ospitare altri comandi.
Passiamo ora ad un altro argomento
apparentemente slegato dal "difetto”
dello scrolline Quasi tutte le calcolatrici
posseggono il tasto della “memoria" che
consente di memorizzare il valore nume-
rico presente sui visore al momento della
pressione del tasto. Quante memorie
possiede un personal computer?
Un numero decisamente superiore,
come è facile intuire. Prima di vedere
quanti, vediamo però come possono es-
sere memorizzati alcuni valori numerici.
E' però necessario rinfrescarci la memo-
ria su ciò che si intende per "formula
matematica". Essa è una relazione uni-
versale che rivela la propria utilità sosti-
tuendo ai valori letterali gli opportuni
valori numerici (ma che diavolo vorrà
dire?).
Ricorriamo ad un esempio, A scuola ci
hanno insegnato che l'area di un rettango
Io è data da:
A — b x h
in cui A rappresenta Parca che si deside-
ra calcolare, b la base ed h l'altezza del
rettangolo da studiare, Se al posto di "b”
ed + 'h h ' sostituiamo valori numerici, it ri
sultato della moltiplicazione viene chia-
mato Area ed indicato, per comodità,
con A, Il motivo per cui gli umani si
servono di lettere dell'alfabeto, invece
dei simboli più propriamente numerici,
risiede net fatto che la mente umana rie-
sce a concentrarsi più facilmente su sim-
boli brevi anziché su numeri. Non dob-
biamo infatti dimenticare il caso di for-
mule complesse in cui intervengono nu-
merosi simboli. Se si utilizzassero diret-
tamente, al loro posto, i valori numerici
rappresentati, si commetterebbero facil-
mente degli errori. L'essere umano, in-
vece, "lavora" inizialmente con simboli
più semplici da trattare ed in seguito,
dopo aver semplificato con opporle ni ac-
corgimenti la formula stessa, sostituisce i
numeri ed esegue i calcoli, limitando in
tal modo la possibilità di sbagliare.
Che cosa c entra tutto questo con le
variabili?
Provate a digitare:
A ~ 123 ( R ) oppure . , .
LET A - 123
Come risposta ottenete soltanto un
READY. Tutto qui? Provate ora a can-
cellare lo schermo (tasto Shift insieme
con Ctr/home) in modo da avere solo il
cursore lampeggiante, e digitate:
PRINT A ( R >
ottenete in risposta: 1231 Diamine, ma
allora memorizzare un valore è la cosa
più semplice di questo mondo! E se noi,
per esempio, digitiamo
A =456: B = 789 (R)
succede forse che.,,
PRINT A: PRINT B: PRINT A+RfR)
è proprio vero: il computer (ratta (e
lettere come se al loro posto fossero pre-
senti t numeri prima impostati. Invecchi
456+7H9 si può digitare PRINT A+B. A
proposito, prima A valeva 123 mentre
ora rappresenta il numero 456. Ne dedu-
ciamo che in "A" viene incase Ha lo sta-
bilmente l’ultimo valore comunicato ai
computer. Ecco dunque da dove viene il
nome di variabile.
Siamo sicuri che il dato viene memo*
rizzato stabilmente? Facciamo una prova
per sincerarcene.
Spegniamo il computer, aspettiamo
qualche secondo e riaccendiamolo. Pro-
vate a digitare:
PRINT A: PRINT B: PRINT C (R)
otteniamo come risposta tre zeri (0), La
prova appena effettuala dimostra che:
* Quando si spegne un computer tutti i
dati memorizzati vengono ìrremediahìi-
mente persi.
• Quando un computer viene acceso
tutte le variabili sono poste automatica-
mente al valore nullo (vedi infatti ciò che
accade alle variabili “A". "B " e “C* nel-
l'esempio appena visto),
Fermiamoci un momento prima di
proseguire.
Proviamo a digitare, carattere per
carattere:
PRINT A,B,C (R).
ed in seguito:,
PRINT A;B;C(R).
dopo aver assegnato, oppure no, valori
qualunque alle tre variabili (esempio:
A = 123: B =456 eccetera) [1 risultato
che sì ottiene è che net primo esempio
(caso della virgole usa fu come separatore
tra tc lettere) i valori sono allineati in
modo tale che la prima cifra di ciascuno
di essi sia a distanza eguale dalla corri-
spondente prima cifra del valore che pre-
cede e che segue. Ne! caso invece del
punto e virgola notiamo che t tre valori
sono trascritti l'uno dopo l'altro senza
"sprecare" spazio tra un valore c I altro.
[I metodo appena descrìtto può esser uti-
le sìa per battere meno (asti, sia per ri-
sparmiare spazio sullo schermo, sia per
allineare più valori su di uno stesso rigo.
Quante variabili
può memorizzare un computer?
La risposta sembrerebbe banale: tante
quante sono le lettere dell'alfabeto, vale
a dire 26 (cioè A, B, C,.,Z>. In realtà
sono parecchie di più Tutti i pers onal
riconoscono infatti variabili con due let-
tere. Digitando ad esempio:
A = 123: AA = 456 ( R )
PRINT A,AA (R)
otteniamo, appunto, 123 e 456 e ciò di-
mostra che la variabile “A ” è considerata
diversa dalla variabile "AA", Le variabi*
li da trattare "vanno" quindi da:.
A A AB ... fino ad AZ
RARE.,, fino a BZ
+ w * »• p *■ * ■¥ ■.
ZA ZB ... finca ZZ
Commoda re Computer Club • - Jc *
DIDATTICA
per un totale di 26x26=676 variabili.
Queste devono essere aggiunte alle 26
viste prima e, stavamo per dimenticarlo,
perfino alte variabili del tipo:
À0A1-.* A9
B0B1„ + B9
ZDZl.’z».
Queste variabili sono cioè individuate
da una lettera ed un numero.
Nota bene: non al contrario; "AO” è
identificata come una variabile mentre
“DA" non ha alcun significato o meglio
può averne uno molto.,, strano cui non
accenniamo nemmeno. Ricordate anche
che nelle variabili con numero si avranno
interpretazioni diverse a seconda se si
digita A zero (“AG") oppure “AO".
In totale si dispone di;
26 + 676 + (10x26) = 962 variabili
vaie a dire valori diversi che è possibile
memorizzare, modificare e richiamare a
piacimento. Come vedremo in seguito i
valori sono dì gran lunga più numerosi ed
in ogni caso incomparabilmente più “co-
modi" da gestire in confronto ad una
calcolatrice tascabile.
Una variabile può avere anche più di
due lettere, ma il computer riconosce
comunque solo le prime due e trascura le
altre. Ad euempio per il computer
“RA’L “RAGGIO", e “RADAR" è
sempre la stessa variabile.
Bisogna, inoltre* prestare attenzione a
non adoperare, come “nomi" di variabi-
li, gruppi di lettere deifalfabeto che indi-
viduano particolari comandi del
computer.
Se ad esempio tentate di digitare:,
COSTANTE— 25 (R)
otterrete milfaltro che un SYNTAX
ERRQR. Le prime tre lettere iniziali
della variabile in oggetto (CGS) sono in-
fatti “riservate" al computer per calcola-
re il coseno di un angolo.
Analogamente i nomi TABELLA*
FORNITURA, POSTA ed a Irre genera-
no un messaggio di errore perchè inizia-
no con te “parole riservate" TAB, POR,
POS.
Una nuova funzione:
FRE(O)
Quando accendiamo un personal coiti
puter Commodore, se proviamo s
digitare:
PRINT FRE{0) (R)
otteniamo come risposta un numero in-
tero. Questo rappresenta il numero di
byte f locazioni di memoria) a nostra di-
sposizione, in quel momento, nel
calcolatore,
Nola per il Commodore 64; se con
FRE(O) il valore che compare è positivo,
esso indica la quantità di memoria effet-
ti vamente disponibile Se invece risulta n
egativo, è necessario battere:
PRINT 2] 16 + FRE(U) (R)
per conoscere* appunto, l'esatta quanti-
tà di memoria,
Supponiamo che il numero sia 1000.
Se ora proviamo a digitare , ». :
A = 123 (R)
e “chiediamo" nuovamente PRINT
FRE(O) otteniamo in risposta un valore
inferiore a quello prima visto ed esatta-
mente (caso di tutti ì personal Commo^
dorè)* inferiore di sette byte.
Facendo diverse prove ci possiamo
render conto di quanto segue;
1/ Ogni nuova variabile memorizzata ri-
chiede sette celle di memoria dette
^byte".
2/ La modifica del valore di una variabi-
le precedentemente “dichiarata" non al-
tera il numero di byte rimasti a
disposizione,
3 f II numero di byte richiesti per la me-
morizzazione è sempre io stesso (sette)
sia che il valore memorizzato sia di una
sola cifra, come nel caso in cui sia di più
cifre o addirittura contenente la virgola
(che, come è noto, è un punto,.,).
Per renderci conto dì quanto asserito
facciamo la seguente prova:
• Spegnete e riaccendete il computer,
• digitare PRINT FRE(0)(R)
• À«5: PRINT FRE(0)(R)
• A =567.456: PRINT FRE(O) (R)
. A=0: B=45.87: ? FRE(0) (R)
• AÀ=45; A = 12:B— -76:PRINT
FRE(O) (R)
A che serve ciò che abbiamo appena
detto?
Semplicemente per ricordare che una
cosa è la potenzialità di uti computer*
altra cosa è leffettiva disponibilità di tale
potenzialità (ma che è, filosofia?)
Spieghia mod meglio.
Se un calcolatore dispone, ad esem-
plo, di soli 1000 byte dì memoria non sarà
possibile, e solo per motivi strettamente
fisici, memorizzare un numero di varia-
bili superiore a 142 (dato da; 1000/7) pur
se in teoria il computer potrebbe farlo.
Volendo sfruttare appieno le potenziali-
tà della macchina è necessaria una me-
moria di almeno %2x7~6734 byte. Co-
me però avremo modo di vedere, il nu-
mero d i variabili che è possibile teorica-
mente inserire in memoria è dì gra lunga
superiore a quello visto d^962.
Fortunatamente non capita spesso dì
dover tenere a mente un numero così
elevato di elementi e di conseguenza an-
che calcolatori con poche migliaia di byte
(in gergo Kìlobyte o Kbyte o setti pii ce-
rnente K) sono sufficienti per fare “gran-
di" cose.
Altre variabili
Se il valore che desideriamo memoriz-
zare è intero e compreso tra -32768 e
+32767, è possibile, per memorizzarlo,
ricorrere alle cosiddette variabili intere.
Il nome di queste possono* come i no-
mi delle variabili decimali, essere com-
posti da una sola lettera, due lettere o da
una lettera ed un numero. Devono però
terminare sempre col simbolo della per-
centuale (%) T allo scopo dì differenziarle
dalle variabili studiate preceden-
temente.
Esempi:
A% = 123: AA4t=5tì7; Bl#=-76
eccetera.
Sono ovviamente possibili operazioni
miste facendo però attenzione a non di-
menticare il carattere di due punti (:) tra
le varie istruzioni.
A =123,456: A^=987: PRINT
m
Viene generato un messaggio di errore
nei casi in cui noti si rispettano le caratte-
ristiche tipiche delle variabili intere,
Esempi:
A % =-40000; A r f — 1000* 100:
A^ — 125.2
50 - Commodore Computer Club
DIDATTICA
Nel primo e net secondo caso, intani, i
valori superano rimervalk) lecito, men-
tre il terzo caso tenta di "tratture" una
variabile declinale. Pur se nei primi due
casi viene, comunque, visualizzato un
messaggio di errore ! ILLEGA I. QUAN-
TTTY ERROR). nel terzo casti non vie-
ne emesso alcun messaggio. Se però
digitiamo:
ATf “ 125.25 :PRINT A#
otteniamo in risposta 125: E stata cioè
memorizzata la sola parte intera. E' da
notare che, anche in questo caso, è possi-
bile memorizzare, oltre alle variatili deci-
mali viste prima, quasi 962 variabili inte-
re a patto, ovviamente, che vi sia memo-
ria RAM disponibile sul personal com-
puter adoperato,
Ancora variabili:
vettori e matrici
Se la possibilità di memorizzare le cen-
tinaia di valori prima visti appare mode-
sta oppure scomoda da gestire, vi potete
servire delle variabili cosiddette "ad
indice".
Questo modo di indicarle deriva pro-
prio dai Fatto che ci si può riferire ad un
indice (racchiuso tra parentesi) che te
distingue ['una dall'altra. Ricorriamo ad
alcuni esempi prima di approfondire
l'argomento:
A(1)=12: A(2)—34.54: A(3)=-
45.76:.,,, A(9)=567 (R) eccetera.
*
Naturalmente sono lecite definizioni del
genere:
AA%(7)=-345: AA(6) = *45* ÀA(2)
ccc.
E’ inutile dire che è possibile servirsi di
due lettere qualunque per definire cia-
scun vettore c che il valore tra parentesi
(indice) può, in genere, variare tra 0 e
65535.
Come versatilità non c'è male!
Si ricorda che se rindice che intendia-
mo utilizzare è superiore a 10 bisogna.
prima di usare le variabili, definire la
dimensione massima de! vettore che le
conterrà. In altre parole supponiamo di
voler memorizzare 23 valori servendoci
non di variabili con nome diverso l'uno
dall'altro. ma ricorrendo ad una variabi-
le che ha sempre lo stesso nome ma indici
di riferimento ovviamente diversi l'uno
dall'altro. Se proviamo a digitare...:
A(0}=344 (R)
A(1)=567{R)
4- * « * S * ■ f ■ * i MtiH
A(I0)»567(R}
.... queste cifre vengono accettate. Non
appena proviamo a memorizzare il dodi-
cesimo elemento (compreso lo "zeresi-
mo’l, come ad esempio ,,:
Af tl}"654 (R)
... otteniamo in risposta il messaggio di
errore:
?B AD SUBSCRIPT ERROR
Avremmo dovuto dimensionare fin all'i-
nìzio il vettore (—tabella) che in seguito
avremmo utilizzato per memorizzare i
diversi valori. La sintassi per tale opera-
zione è DIM Se ad esempio desideriamo
definire due vettori, l'uno decimale di 23
elementi col nome XI e l’altro intero di
234 elementi col nome ì 7 E% dobbiamo
digitare:
DIM Xt(22): DIM FE%(233} (R)
Dopo tale operazione è possibile
memorizzare...
FE%(43)=-7654: X 1(21)^56.89
... oppure leggere...
PRINT FE%(143), X1(I3) eccetera.
E' altresì possibile dimensionare ma-
trici pluridimensionali. Queste sono del-
le vere e proprie tabelle in cui memoriz-
zare. in ciascuna casella da cui sono for-
mate, altrettanti valori numerici. Se per
esempio digitiamo:
DÌM A(20 1 3D)
non facciamo altro che riservare spazio
in memoria per un numero di 20*30=600
valori decimali. Sono pertanto possibili
memorizzazioni del tipo:
A( 12, 5) =876: A(7,26)=987 e simili.
In parole molto semplici, con l'esem-
pio accennato si crea in memoria Io spa-
zio per una tabella numerica formata da
2 1 righe e da 31 colonne. Se si pensa che
sono possibili definizioni del tipo:
DIM A{32.54.13)
è facile immaginare le enormi possibilità
offerte da un personal computer. Si ri-
corda. però, che è bene fare i conti con la
memoria disponibile. Il computer, infat-
ti, può memorizzare a patto che... abbia
memoria RAM sufficiente per compiere
l'operazione! Ricordando che. in gene-
re, una variabile decimale ad indice oc-
cupa in media cinque byte, è bene fare
un calcolo prima di dimensionare un va-
lore eccessivo. In caso contrario si ottie-
ne in risposta un messaggio del tipo:
?OUT QF MEMORY ERROR
vale a dire: non c è memoria sufficiente
per compiere l'operazione.
Ancora variabili,
stavolta alfanumeriche
Tutti sanno che un computer può
' trattare’' simboli anche diversi da quelli
tipici della matematica e lo dimostra il
fatto che gli errori vengono visualizzati*
in genere, mediante veri e propri
messaggi.
Anche noi possiamo memorizzare pa-
role. e addirittura intere frasi e messaggi
vari con limitazioni decisamente mini-
me, La sintassi corretta per eseguire l'o-
perazione consiste nel far seguire le lette-
re del nome della variabile dal segno del
dollaro ($) e ncIPinsenre tra virgolette a
apici ( ") il messaggio da memorizzare.
Esempio:
A$="MESS AGGIO”:
FR$=“OUESTA E’ UNA FRASE 'iR)
In seguito saranno ovviamente possi-
bil i operazioni de) tipo, < . . :
PRINT ÀS.FRS.... ed operazioni
miste,..
PRINT A.A%,AA$ 1 AL
Segnalazioni di errore
nel trattamento delle variabili
Come abbiamo visto, esiste una note-
vole capacità di memorizzare un gran nu-
C ommodùrè Computer Club - 5ì
DIDATTICA
mero di variabili. E d'altronde doveroso
prestare la massima attenzione aflinchù
la memorizzazione avvenga senza i neon-
venie riti di sona. Riponiamo pertanto
un elenco di messaggi di errore che il
computer visualizza nel caso venga digi-
tato uiì comando inesatto come nel caso
di impossibilità di eseguire l'operazione
richiesta.
Negli esempi che seguono il simbolo
t R) significa* come al solito, “Premere il
tasto di ritorno carrello (Return)”.
• ?SYNTAX ERftOR
La sintassi richiesta non è stata rispet-
tata. Casi tipici sono rappresentati dal-
fomissione di parentesi, segni di eguale,
apici, doppi punti. Esempi:
A“(R) Manca il valore da assegnare ad
A
A + Fi (R ) Manca il comando FRIN Ì
? (A+B)'45) (R) Il numero di parentesi
aperte è diverso da quello di parentesi
chiuse.
FRINÌ A FRI NT D f R> Manca il carat-
tere dei due piunti tra le due istruzioni
FRINÌ’ A,:R, (R) Cò un carattere di
doppio punto " in più”.
# 7DIVISIQN B Y ZERO ERROR
Capita quando si tenta di dividere un
qualsiasi valore per zero, operazione no-
toriamente impossibile. Esempi:
A=0: FRI NT UXì/A (R)
E' invece possibile;
A =0: PR 1 NT A/IUfl ( R )
* U ELEI ì A L QUAN ìl i V ERROR
Capita quando si richiede di lattare
un valore inaccettabile, Esempi:
A % “ KHXKXI (R) Con variabili intere il
valore memorizzabile deve infatti esser
compreso neirintervallo -32768 e
+32767
A=-4: PRINTSCJR(AMK) Ricordiamo
che SQR( X ì calcola la radice quadrata di
un numero. Questo deve, come è noto,
essere maggiore o eguale a zero
A=-3.?6: FRINÌ LOGIA) (Ri Vedi os-
servazione precedente.
DIM A(32): PRJNT A(45) (R) Non è
possibile riferirsi ad un indice superiore
al massimo dichiarato.
* ? OU T OF MEMOR Y ERROR
Capita quando st cerca di memorizzare
troppe variabili o matrici con un numero
eccessivo di dementi. E' intuitivo che il
r >2 - Commodore Computer don
DIDATTICA
messaggio dì errore viene visualizzato
nel caso si superi la quantità di memoria
disponibile.
Consideriamo infatti il seguente
esempio;
DIM A(IOUHH'R)
Questo comando porta al messaggio di
errore in oggetto nei caso Jj un computer
con scarsa memoria (es. Vìe 20 incapati'
so), mentre viene accetlatu nel caso di
computer con maggiore capacità (Com-
modore 64, Vie 20 con scheda di espan-
sione di almeno 8K, Plus-4. eccetera).
* TOVERFLÓW ERRÒfi
Capita quando Si cerca di ''trattare" un
valore troppo grande per la capacità di
calcolo del computer, Esempio:
PRINT lOOOGj lOQOO (R)
Ne approfittiamo per ricordare che il
simbolo trecciti iti alto (T) viene utilizza-
to per compiere l'elevazione a potenza.
Se ad esempio si desidara calcolare il
cubo della variabile *'A' T ri deve digitare:
PRINT A|3 (R)
* 7REDIMD ARRA Y ERROR
Capita quando si tenta di dimensiona-
re nuovamente un vettore già dimensio-
natolo in precedenza, Esempio:
DIM A (23): DIM A(12)(R)
» ; J t ype Misto a rea errqr
Capila quando si cerca di trattare co-
me variabile numerica una stringa o vice-
versa* Esempio:
A— "PROVA” (R) Manca il simbolo del
dollaro
BS = ”123": A=-45+B$'(R) Non è possi-
bile sommare numeri a stringhe anche se
queste rappresentano caratteri numerici.
AS=NQME (R) Mancano gli apici di
apertura e chiusura (“NOME 1 ).
Esercizi dì riepilogo
Cercate di rintracciare, tra le "linee
che seguono, quelle che contengono er-
rori, e. tra queste, determinale il messag-
gio di errore che il computer emettereb-
be. Nel caso i comandi vi sembrino cor-
retti, individuate la risposta che fornireb-
be il calcolatore. Dovete immaginare che
][ computer sia stato spento ed in seguito
riacceso poma di eseguire, l’uno dopo
l'altro, gli esercizi proposti.
E' ovvio che le scritte 1/ 2/... 9/ non
devono essere trascritte.
1/ PRINT A(7)*A(2) (R)
2/ PRINT A(7VA(2)(R)
3/ DIM Al 15) (R)
4/ A=A*34+B;PRINT A (R)
5/ CSS- VOCABOLO " PRINT CSS
(R)
6/ PRINT CSS
li CSS=” VOCABOLO”: PRINT CSS
(R)
8/ CSS=CS'4CS!(R)
9/ PRINT C$S,A.A(3)(R)
Risposte
\j La prima riga e corretta. Il risultato
fornisce zero. Infatti non appena si ac-
cende il computer tutte le variabili valgo-
no zero. Si noti soprattutto che e! sempli-
ce fatto di aver "nominato'’ variabili con
indice, genera un dimensionamento im-
plicito. Ce ne accorgeremo digitando il
comando della terza riga.
2/ Deriva un DI VISION BY ZERO
ERROR: Non si può dividere un nume-
ro (A(7)) per zero (A (2)).
3/ Viene visualizzato il REDIM’D AR-
RAY ERROR dato che precedente-
mente (rigo uno) è stato già definito,
anche se implicitamente, il vettore dal
nome A.
4/ Il risultato è zero. Anche in questo
caso "A” e "B” valgono zero non appe-
na si accende il computer
51 Viene visualizzato un S YNTAX ER-
RO R Manca infatti il segno dei due
punti (:) tra i due comandi (prima di
PRINT). Ss noti che in questa fase, no-
nostante l'omissione del carattere si ma-
nifesti dopo uii comando corretto
(CSS — "VOCABOLO”), questo non
viene memorizzato. Nel caso, infatti, in
cui su di una stessa riga vengano digitati
più comandi, sono accettati solo quelli
sintatticamente corretti tino al carattere
di doppio punto (:). Nel caso presente
non vi sono comandi corretti prima del...
primo doppio punto (che addirittura
manca), *
6/ La battitura di questa riga, che forni-
sce in risposta un rigo vuoto sullo scher-
mo. dimostra che la riga precedente (S/ì
non è stata accettala nemmeno in parte.
Per il computer la stringa CSS è vuota .
non contiene, cioè alcun carattere.
7/ Questo ò il modo corretto di digitare
la riga 5. Viene ovviamente visualizzata
la parola VOCABOLO.
Hf Viene eseguita la.., somma di due pa-
role, Vale a dire che mentre prima la
stringa CSS conteneva la parola vooabo-
Commodore Computer Club - 53
DIDATTICA
lo. dopo l'operazione di somma come irà
il risultato delFope razione predente a de-
stra de! segno eguale, vale a dir c:
VOGA BÒ L O V OCA BO LO
Non è possibile un 'operazione di diffe-
renza, moltiplicazione o divisione tra
Stringile che, come è intuitivo, non
a vrebbero sanso.
9/ La visualizzazione di CS$ viene segui-
ta da due zeri, valori posseduti dalle va-
riabili A c A(3). Si fa notare che nella
fase S non viene visualizzata la stringa
CS$ per il semplice motivo che.., non è
stato richiesto. Si deduce che il computer
esegue sì Manto quei comandi che vengo-
no impaniti. Se si desidera visualizzare
qualcosa è indispensabile ricorrere al co-
mando PR1NT. In ogni caso il risultato
delle varie elaborazioni viene mantenuto
in memoria fino a che non sì spegne la
macchina o vengono modificate le varia-
bili stesse mediante opportune istru-
zioni.
C'è un'istruzione che cancella tutte le
variabili, di qualunque tipo esse siano.
Questa è “CLR ' (abbreviazione di
Clear— cancella).
Attenzione quindi ad usarla!
La programmazione
La programmazione non è. come co-
munemente si crede, un concetto nuovo
nè richiede, per la comprensione, altre
esperienze al dì fuori di quelle quotidia-
ne. Ricorreremo subito ad un esempio
banalissimo per dimostrare quanto
assento.
Supponiamo di voler andare in edicola
ad acquistare un giornale Per raggiunge-
re lo scopo prefissato (acquisto di un
giornale) noi eseguiamo Tempre, magari
senza rendercene conto, una serie di
operazioni. Volendo descrivere il nostro
comportamento in modo sbrigativo, pos-
siamo riassumere le azioni da compiere
nel modo seguente :
1/ scendiamo in strada;
Zi d rechiamo all edicola;
3/ acquistiamo ìl giornale:
4/ torniamo a casa.
Forse non ci crederete, ma questo ap-
pena descritto c un programma! Esso c
stato, per pura questione di comodità e
chiarezza, suddiviso in quattro punti
“fondamentali" ma potevano anche es-
sere in numero inferiore:
1/ ci rechiamo dal giornalaio per acqui-
stare il giornale;
2/ torniamo a casa a leggerlo.
A voler essere un po' pignoli i punii pri-
ma visti dovrebbero essere ben più
numerosi.
Scommettiamo che. nel l'azione abi-
tuale di acquaio, eseguite tutte le opera-
zioni che tra breve verranno descritte?
Osservate attentamente. Vi sfidiamo a
negare anche una sola delle operazioni
che compite quando vi 11 programmate"
per l'acquisto di un giornale:
1/ Verificate se il giornale desiderato
non favete già acquistato.
2/ Se lo avete già comprato saltare alla
fase N.lh, altrimenti continuate con la
N.3.
3/ Controllate di avere in tasca il denaro
sufficiente per l'acquisto.
4/ Se la verifica della fase N.3 è negativa
vi procurate tl denaro, Se non riuscite a
procura rvelo saltate alla fase N.17,
5/ Controllate che il vostro abbigliamen-
to e/o aspetto personale siano adatti.,,
alla missione che stale per compiere.
6/ Nel caso in cui siete in vestaglia e
pantofole provvedete a cambiarvi a se-
conda della stagione e delle., . condizioni
atmosferiche (se piove prendete
l'ombrello).
7/ Se c'è qualcuno in casa avvertite che
state per uscire,
8/ Usate le scale o l'ascensore a seconda
dei casi (fermo per manutenzione, man-
canza di ascensore eco),
9/ Decidete quale giornalaio raggiunge-
re (probabilmente il più vicino).
10/ Se è necessario attraversare la strada
mettete in atto le più elementari regole di
prudenza ne U'aì tra versa ria.
li/ Raggiunto il luogo chiedete ciò che
desiderate,
12/ Se la pubblicazione è esaurita indivi-
duate l'altra edicola più vicina. Saltate
alla fase 9,
13/ Pagate la cifra richiesta ed intascate
l’eventuale testo.
14/ Riprendete la strada di casa,
15/ Entrate nel vostro appartamento.
16/ Vi mettete a leggere (finalmente) il
giornale,
17/ Fine di tutte le operazioni.
Se avete avuto la pazienza di seguirci
fin qui, vi sarete sicuramente accorti che
è possibile essere ancora più pignoli di
quanto non lo siamo stati noi stessi. Ad
esempio tra la fase 14 e 15 sarehbe op-
portuno inserire una fase (N,14a) del tut-
54 - Commodore Computer Cfab
STUDIO D
PER NON SMARRIRE MAI IL FILO DEL DISCORSO.
STUDIO D
[Mimmi RADIOTELEVISIVE INDIPENDENTI CHE SI FANNO SENTIRE.
CONCESSIONARI MEZZI
RADIOTELEVISIVI
STUDIO D
Via Rossini S • 20122 MILANO
Tei. (02) 799.S92 782.S03
DIDATTICA
/STEMA
TELI ARE
Specialisti di Software
TITOLATE LE
VIDEO-CASSETTE DI
VOSTRA PRODUZIONE
Il “Generatore di Caratteri’* di Si-
stema Stellare vi permette di ap-
porre con facilità i titoli ai vostri
vìdeo-film.
Completamente generati dal
programma!
Quattro differenti funzioni!
Non è richiesto nessun apparec-
chio addizionale tranne i normali
cavi di collegamento!
Istruzioni fornite in cinque lingue:*
Italiano
Inglese
Francese
Tedesco
Spagnolo
Finalmente un tocco dì professio-
nalità alle vostre video-
produzioni! ,
Cassetta soto L. 35.000
Disco soloL 40,000
* Tutte comprese nella versione
disco. Per la versione cassetta
specificare la lingua desiderata.
Si prega ordinare a mezzo vaglia
postale intestato a:
Carla Rowland-Tìms
Via Lago Patria
Parco Mazzola
80014 Lago Patria (NA)
to simile alla 10, La prudenza nell attra-
versare la strada è sempre auspicabile!
Altre fasi possono essere introdotte a
piacivcnto nel considerare casi particola-
ri. Ad esempio se piove a dirotto è prò
babiie che vi fermiate alla fase 4 rinun-
ciando all'acquisto oppure,. . incarican-
do un vostro familiare di scendere in
strada!
In effetti si dovrebbero prevedere altri
casi particolari come ['incontro casuale
di un conoscente che potrebbe distrarvi
facendovi rinunciare alla missione da
compiere.
in definitiva, quando decidiamo di
compiere qualche azione, qualunque es-
sa sia, ci organizziamo, (ripetiamo; il più
delle volte senza rendercene conto) se-
condo un ' programma 1 ', vale a dire una
serie di azioni logiche, da eseguire in suc-
cessione Tuna dopo Ì T attra.
In ogni caso ci sarà un'azione da com-
piere per prima ed una che rappresenta
l’ultima della lista. Nel caso Fazione da
compiere risulti diversa a seconda del
verificarsi o meno di un evento (caso del-
le fasi N.2/ 4/ 7/) t ci troveremo di fronte
ad una scelta da effettuare tra le varia
possibili, runa delle quali tn genere db
versa dalfaltra.
11 grafico che deriva dallo studio delle
azioni da compiere prende il nome di
diagramma dì flusso appunto perché rap-
presenta il fluire “logico 11 delle azioni da
compiere nel corso dello svolgimento del
compito da espletare. Quelli relativi ai
due schemi appena visti sono evidenziati
nelle figure,
In queste ogni azione è incasellata in
una forma geometrica unificata di cui
descriviamo l'uso qui di seguito:
* Renandolo. Indica un'azione da com-
piere senza,., discussioni.
* Rombo. Implica una sedia da compie-
re. La direzione del flusso prende una via
oppure un'altra a seconda delle condi-
zioni in cui si trova l'evento da considera-
re. Le deviazioni possono essere molle-
plici e non solo due come comunemente
si crede. Avremo occasione di verificarlo
in seguito.
* Ovvile, Indica l'inizio oppure in fine
delle operazioni.
Una breve precisazione
Abbiamo detto che un programma
non t altro che un elenco di azioni da
svolgere in successione. Per distinguere
la precedente dalia successiva, si ricorre
alla numerazione delle azioni stesse co-
me. appunto, abbiamo fatto in prece-
denza, Anche il calcolatore va program-
mato allo stesso modo ma, negli esempi
che seguono, tale numerazione sarà un
pò bizzarra. Infatti i numeri che indivi-
duano le azioni (o gruppi di azioni da
compiere), non saranno consecutivi, nè
si partirà da! numero 1, lì primo schema
visto, per esempio, lo scriveremo come
segue;
100/ Scendiamo in strada.
1 10/ Ci rechiamo al Tedi co la.
245/ Acquistiamo il giornale.
280/ Torniamo a casa.
Il perchè di tale insolita^ umerazionc
risiede nel fatto che ci riserviamo la pos-
sibilità di inserire, net seguito, alcune fasi
che possiamo aver dimenticato di inseri-
re. Se riteniamo, ad esempio, che è indi-
spensabile controllare anzitutto il pos-
sesso del denaro, potremo agevolmente
inserire una riga di azioni numerata con
un numero inferiore a 100 (prima nga del
caso appena visto). Questa può essere la
seguente:
90/ Controllo del possesso dei denaro
necessario all’acquisto.
Se fossimo partiti direttamente col nu-
mero uno, tale inserimento non sarebbe
stato possibile se non cambiando la nu-
merazione a tutte le fasi con notevole
perdita di tempo, Analogamente altre
linee di azioni possono essere inserite tra
altre linee, purché h numerazione di
queste lo consenta.
In ogni caso, anche ricorrendo all’in-
solito elenco, viene sempre rispettato
l ordine logico. L’importante è, infatti,
fare dapprima Fazione che possiede iì
numero più basso: subito dopo quella col
numero immediatamente maggiore e di
seguito tutte le altre fino all'ultima.
Sul prossimo numero di Commodore
Computer Club, in cui concluderemo la
"chiacchierata" coi principianti, trasferì
renio su calcolatore i concetti appresi e
scriveremo, finalmente, il nostro primo
programma.
Nel frattempo, se avete in casa un
Commodore, digitate e fate girare i pro-
grammi pubblicati su questo numerò
Anche se non capile granché del loro
funzionamento, vi accorgerete che utiliz-
zare un computerà molto più semplice di
quanto non pensiate.
56 - Commodore Computer Ciub
DIDATTICA
QUALSIASI COMPUTER
lj ìi memorizzazione delle variabili rea-
li nei computer Commodore avviene uti-
Ir zzando la virgola mobile (o, dallingle-
se. floating point).
I n questo articolo descriviamo tale tec-
nica. la cui comprensione può in partico-
lare permettere di prevedere e prevenire
ì problemi legati alla precisione (o meglio
airi m precisione) che ne deriva (vedi il
riquadro).
Per quanto riguarda gli altri tipi di va-
riabili, i riquadri a corrèdo forniscono
qualche complemento al Parti colo “Cin-
que Utility in Basic' 1 (CCC N. 15 pro-
gramma 2) e richiama rio alcuni oggetti
già illustrati nel fa rt redo “un po’ d’ordi-
w trai Bit' 1 (CCC N, 10),
Se digitiamo;
X- 1000000000 : PRINT X
il Commodore passai automaticamente
alla cosiddetta notazione scientifica, scri-
vendo 1 E -HÌ9,
In genere in questo tipo di scritture il
simbolo F. sta per “moltiplicato per 10
alla '; il numero che segue la b è detto
esponente, e deve essere un numero in-
tero; a! contrario il numero che precede
la E può avere una parte decimale (even-
tualmente periodica, o anche peggio. ),
Naturalmente uno stesso numero può
avere varie scritture, ad esempio:
In inglese si chiama
floating point. Per
noi, è la virgola
mobile . Serve per
memorizzare
le variabili.
Ecco come usarla.
214 t-:-2 = 23.4 E- 1 = 2.34 K 0 = 0.234 E
1 = 0.0234 E 2 =
ma tra tutte queste ne esiste una sola che
rispetta i due requisiti seguenti:
( i | la scrittura inizia con /ero virgola (0, )
ovvero con meno zero virgola (41.)
( ii> la poma cifra dopo ta virgola non è 0;
Quando tali condizioni sono rispettate
si dice che il numero è stato scritto in
forma normalizzata (si osservi che lo ze-
ro non possiede forma normalizzata).
Nel Basic Commodore le variabili rea-
h sono rappresentate in forma normaliz-
zata: ma naturalmente iti base 2, min in
base 10! ( iò significa che Le cifre dopo la
virgola, anziché i decimi, centesimi eie.,
rappresentano i mezzi, i quarti, gli ottavi
e cosi via. Inoltre il simbolo E sta ora per
“moltiplicato per 2 alla ".
Per capire come un numero verrà me-
morizzato bisognerà perciò effettuare
due trasformazioni; da decimale a bina-
rio, poi da binario a binano normalizza-
to. Ad esempio:
-5 -101 -O.101E3
3.75 11.11 OllllEZ
4/3 = 1. (3) 1. (Oli 0.(10) E 1
(periodico)
0. 1 0,0(001 1 ) 0.(1100) E3 (periodico)
Il fatto che il decimale 0 1 risulti perio-
dico in numerazione binaria C causa di
molti guai,., (vai ancora a vedere il ri-
quadro).
Una volta rappresentato il numero in
binario normalizzato, la tecnica del Basic
Commodore per memorizzarlo (cioè per
costruire j numeri V1,.,..V5; not azioni
del riquadro a pag. consta di 3 fasi:
* ì, esponente deve essere compreso
tra -127 e + 127. Se ciò ò vero, si pone V I
— esponente 4- 12H lé un intero ira I e
255. che può quindi essere “pokato" nel-
la cella voluta >.
Quando l'esponente risulta > 127 vie-
ne emesso tl messaggio "?OVT-R-
Fl OW ", Se infine l'esponente è - -127
si pone semplicemente VI = 0; e quando
V I =0 ( indipendentemente dai valori a*
Commodore Computer Ck,b - 5?
DIDATTICA
.
I
* v "
|
fori
«re WMumMìmì
fine dette variabili . __ ..
alTìnziu degli array* La fine douli ar- ™**> mfftnnp 11
I tny è puntata da (4^50)
ce nullo* In
* le matrici sono memori
■ .
ii
ri : %
b
Ai due byte che indicano
tipo deirurray ( "* ^ J ■
variabili qui U quarto tipo non r-*
seguono due byte che esprimono
solito modo: parte bassa, poi
t»> il numero di celie i
me mori nazione
mente Jo spalto occupato dipende da
«‘ÉÈ+’sK, „
mr m
come è rtato
Segue poi un bj
dimensione drìParray,
dt indirì: 1 per i vettori, 2 |
matrici.
Per ogni indice «a
mo> una coppia di byte ch J
«omero di valori che l’Indice steso
Por assumere (j in più del numero
ognMndicc • wò a=u«»«rew>cheilva-
te di queste
HU
V - • ■>!
deH'array sono memorizzati. Ni
lù indici vengono per primi i
elementi che corrispondono all'ultimo
nullo. Tra questi i primi sono
lii
i memori //.a/ione di un urray
richiede ancora 5
ma per un array
occupano solò
e per gii arrav di
jm I). In parti-
con grandi
(compresi
sant un
‘ reali, per
», - <
non
1
i.*
■
- ■
m
•V. *- ' ,1'fl
,r,5.- V* ì
suoli da V2,.,. T V5) il valore della varia-
bile in questione ò assunto essere 0 per
convenzione.
Si osservi che, grazie a questa conven-
zione, risulta possibile trattare anche il
numero 0 (che non ha forma normalizza-
ta); c risultano velocissimi test del tipo
IF X = OTHEN
e
IF X < > OTHEN
richiedendo la sola lettura di VI.
• 1 restanti valori V2,V3,V4,V5 sono
visti come un unico blocco di 32 bit. Nel
secondo di essi si immette la seconda
cifra dopo la virgola; nel terzo la terza e
COSÌ via. Se non ci sono 32 cifre dopo la
virgola, si aggiungono zeri. Se la cifra
33 fosse un 1 si incrementa la 32, con
eventuali riporti sulla 31 eie.
Non abbiamo ancora provveduto a
memorizzare: il segno, h parte prima
della virgola, e la prima cifra dopo ìa
virgola. Ed è qui che si rivela la potenza
della Scrittura normalizzata.
La parte intera è inutile memorizzarla:
la regola (i) ci dice che essa è comunque
0.
La prima cifra dopo la virgola c inutile
memorizzarla: la regola (ii) ci dice che
essa non c 0; ma in binario ciò significa
che essa è un L
fi segno viene memorizzato nel primo
dei 32 bit a disposizione, con convenzio-
ne analoga a quella usata per ì numeri
interi: VI AND 128 varrà Operi positivi,
e 128 per i negativi.
Naturalmente, al momento dei conti,
una volta valutato il segno del numero,
occorrerà ripristinare 1*1 in prima posi-
zione (si dice che tale bit è mascherato
dal segno 1. Complicato? Forse, ma tanto
a fare i conti ci pensa ì! Computer.,,; il
lutto è simulato da Basic nel programma
di pag Ila ricostruzione del numero può
essere affetta da approssimazioni, ma la
scrittura binaria normalizzata è esatta.
Il programma è puramente didattico:
le linee 3311, 34(ì possonoessere sostituite
da INPUT A: GOTO I5tl ma così tacen-
do si perde la possibilità di assegnare ad
A il risultato di un calcolo. Si Faccia at-
tenzione al fatto che la variabile A deve
essere la prima incontrata dal
programma.
ÀI RUN, la variabile A valeO. L Se ne
& già vista la scrittura binaria normalizza-
ta: (I. ( 1 100) H-3, La cella esponente con-
tiene perciò -3+128=125. Le celle man-
tissa dovrebbero essere tutte IKK litoti
binario = 128+64 +8 +4 = 204, ma nel
primo byte occorre fare un AND 127
(segno +) e nel quarto occorre lare un
+ 1 (il primo bit trascurato è un 1). I
cinque byte mostrati dal programma so-
no perciò 125,76,204*204,205,
11 programma chiede ora se vogliamo
cambiare A. Rispondiamo l *SF‘ ed asse-
gniamo ad A il valore -5. Abbiamo visto
che in binario normalizzato -5 si scrive
-0.101 E3, Aggiunti gli zeri finali, e la*
sciato a ì il bit segno si avrà
V 1=3 + 128*131; V 2— binario 101U000Q
= 128+32 - 160 V3.V4.V5 sono nulli ed
il programma mostra appunto i valori
131. 160.0,0,0:
Rispondiamo ora “NO" alla richiesta
di cambiare A, e **Sl T ' alla richiesta di
cambiare VI V5 e proviamo a “forza-
re’ 1 in A il valore -4/3 agendo sui
VI, V 5 Sappiamo che -4/3 sì scrive -1 1
(10) LI nella cella esponente dobbiamo
perciò inserire 1+128=129 mentre i byte
58 - Commodore Computer Club
DIDATTICA
mantissa sono tutti binano 10101H 10 =
128+32 +8+2=1 7U* [I primo hu del pn
mo byte non va modificato (segno -)
mentre all'tiltuno byte va sommato 1
1 primo bit soppresso — 1 ).
Alla richiesta di V1,,,,,V5 forniremo
perciò 129, 17(U71U70, 171; o vedremo
apparire A = - 1. 33333333*
t ome ultimo esperimento proviamo a
forzare in A il piti grande numero che il
Commodore può gestire; VI— 255,
V2=127 (segno +), V3~255, V4=25S,
V5=255 : l’esatto valore di A e dato allo-
ra dalla formula;
2 * 127*0/2+1/4+1/8+.... + W2T32) = 2
127*( 1-21-32) «2 [ 127-2 f 95,
Inserendo i valori
251127.m255.255, come VI V5 il
Commodore tornirà A — 170141183
E +3H ma nella ricostruzione di tale valo-
re le approssima rioni effettuate nei cal-
coli intermedi generano un overflow.
Le variabili i
I tipi di variabili sono quattro;
Tipo reale: N I 128. L'interpretazio-
ne di VI V? e data ut {l'articolo.
1 ipO intero: NI > 127, La quantità
VU256+V2, diminuita di 2 1* se VI
j 128, e il valore della variabile,
I valori VJ, V4. V5 non sono
utilizzati,
l i stringa: N ì < 128, N2 > 127,
La stringa ha la lunghezza V I; se V 1 >
o essa e memorizzata in V I celle a
partire da quella numero \ 2 +256 V 3
V4 e \ 5 non sono utilizzati.
Tipo funzione: NI > 127, N2 128,
Se ad esempio e stato eseguito il co-
mando DKF KN (\> - 1 + X, la zona
K ASIt io cui tale definizione e toke-
ruzzata si trova a VI +256 V2 dii tale
cella e tokenizzata la prima istruzione
a destra del segno “eguale ” “ = \ 5
e il token della prima istruzione ineb
l'esempio: V 5 = 48 , token della cifra
1 1: infine V3+256"\4 e Ea creila dove si
trova if dato V L della variabile utiliz-
zata ( nel V esempio: il dato VI della va-
riabile \ t.
Veniamo ora alla linea lOfM) ed alla
misteriosa linea 9980. La submarine
1IHM0 converte un numero Z (intero, ira
0 e 255 ) nella sua scrittura binaria a H hit:
con RUN UHM) si può utilizzare (corretta-
mente) tale subrettine.
La linea 9980 è un'alternativa (a priori
lecita, ma pericolosa) alla linea 11)00; con
RUN 9980 oppure GOTO 9980 si otterrà
la conversione, seguita ovviamente da un
‘? RETURN WITHOUT GOSUB' .Pe-
rò, eseguendo GOSUB 9980 tutto do-
vrebbe funzionare*..
In realtà, esguendo GOSUR9980
(senza abbreviare il GOSUB c senza
apazio tra esso e il 9980) lutto funziona
bene se, alla richiesta input, si fornisce
un numero di due o ire cifre. Se invece si
fornisce un numero di una citra appare
un incredibile "?SINTAX ERRQR IN
48'*
Nc riparleremo.
memoria
Riportiamo, qui di seguito, un breve
compendio del l'articolo pubblicato
sul n. 19 di C.C.C. “un po' (l'ordine
trai Bit"'.
A partire dalla celta “puntata' 1 da
1 45.46 u cioè dalla luca/ ione di memo-
ria PEEK (45 J +256 PEEK (46), e
Uno alla cella puntata da (47,48), ogni
blocca di 7 byte e riservato alla inenm-
riz /azione di una variabile incl PET i
puntatori corrispondenti sono (42,43}
e (44,45 L
Indicheremo con:
N I ,\2, V LV2,\ 3A4.V5 i valori onte-
ili bili tramile PKKK} contenuti in un
blocco.
NI e N2 contengono informazioni
sul nome e sul tipo della variabile;
V V5 servono a ricostruirne il va*
lore. Precisamente:
NI AND 127 e il codice ASCII della
prima lettera del nome;
N2 \ND 127 e il codice ASC li della
seconda lettera (oppure e 0 per le va-
ria bili etm nome corto, quali
V.VS.NS)
„. d
Sa
, ma vero
che. fra le tante.
fornisca
■ , ■
mento da
m. ■
* i »
< > 8 per X ovvia-
re siila scarsa preci-
SQR dei BASIC
Coti) inodore, , ^
Al coiìtnirio, il fatto che ponendo:
— 5 : Y = SQR (ZI: X = ÌTY - Z
ttengfi X< > Ò è inevitabile nes-
esattameli (e
ette due ap-
pensino: ad
lei comanda pre-
ottiene X = 0.
t« che II programmato-
^tar l i e ,, 11 pericolo,,. e non
pio il numero 0.1 è un tuo
buse 18* ma in
quindi it
urT appressi -
X =9,1.
che un rido
+V
I STKP .1 : ;
t . +- « ^ . \^k,
nove volte anziché
Un caso strano di compensazione
solo pai naie è:
X = 0.7 ; iFJe : > 10 X THE
PRINTX- IO -
eseguilo, ma 11
comunque
i ria foghi re-
Ad esempio
i
Commodore Computer Club - 59
£ 00 REM VARIABILI IN VIRGOLA MOBI
LE
i 10 CLR i A = . 1
115 REM OCCORRE CHE A SIA LA PR1M
fi VARIABILE DICHIARATA
£20 B = PEEK<45)+£56*PEEK<48)+2
130 REM PEEK <X) CON H=B B+4
FORNISCE VI V5
140 REM CHE CORRISPONDONO ALLA VA
RIAB1LE A
150 PRIWT '‘LETTURA DIRETTA*: PRINT
''A= "A
180 PRINT "VALORI VI, V5*. "
170 FOR X=0 TO 4: PRINT PEEKCX+
B> ?
ISO NEXT: PRINT
190 PRINT “VALORE RICOSTRUITO 1 * : P
RINT “A=*:
200 JF PEEK <B ) =0 THEN PRINT 0!
GOTO 310
210 S — 1 ■ IF PEEK (B+ I > > 127 THEN
S = -l
220 REM S = SEGNO
230 2 =PEEK (8+ 1 ) OR 1285REM RIPR
I STI NO BIT MASCHERATO
240 2=2/256: FOR X=2 TO 4 : Z =2 +
PEEMB+X>/£5GtX
250 NEXT: REM Z® MANTISSA
260 PRINT S*2*2t(PEEK(6)-123>
270 PRINT "SCRITTURA BIN.NORM.*: I
F S=-l THEN PRINT
2B0 PRINT'0. *; :2=PEEK<B41) OR 12
8: GOSUB 10000
£30 FOR X=B+£ TO B+4: 2= PEEK(X
>: GOSUB 10000: NEXT
300 PRINT “ *£ t " PEEK <B ) *- 1£8
310 INPUT 'VUOI CAMBIARE A <SI/NO
>";A*
3£0 IF At= “NO THEN 350
330 PRINT "ASSEGNA UN VALORE AD A,
POI *
340 PR INT "ESEGU I s GOTO 150*: END
350 J=0i PR I NT " VUO 3 CAMBIARE VI...
. V5 (S/NO> * J : INPUT A*
360 IF A$="NO" THEN END
370 FOR X=B TO B+4: PRINT *V"J;
i INPUT Zi POKE X,Z : J=J + 1 :
NEXT i
GOTO 150
380
■
1
1000
INPUT
Zi GOSUB
1 0000 + END
9970
9380
d.
*
INPUT
Iiiii
■
■
Z : REM A
CACCIA DI GUA
9990
10000
REM
TRASFORMA 2
IN BINARIO AD
OTTO
BIT
10010
R$C0)
= "0*? ASCI)
_« 1 ; *
10020
FOR
Y=1 TO 8:
A$»AS(Z AND
1> +
A$: Z=Z/£
10030
NEXT:
PRINT A$;
13040
RETURN
Commodore Computer Club è anche su cassetta
A l prezzo contenuto di I ,5800 <csdu-
so la spedizione) viene inviata la cassetta
contenente tutti i programmi pubblicali
ciascun numero di C.C.C,
Naturai mente il nastro è strutturato rn
modi} da venir letto da uno qualsiasi dei
computer ( f4, 0-12K s Vic-20. c; 16.
Plus -4 . a patto, ovviamente, che i .listati
siano ad essi destinati.
Il lettore che possiede il disk drive pud
trasferire senza alcuna difficoltà i pro-
grammi su disco, dopo ave li letti da na-
sl ro. dato eh e gli stessi Listati non sono in
alcun modo protetti
60 - Commodore Computer Club
SIMULAZIONI
COMMODORE 64 - CI6/PLUS-4
Ora
cannone
neutronico
di Antonio Visconti
Un gioco di strategia
che mette alla prova
le vostre capacità di deduzione.
essimo ha mai osservato direttameli-
te un elettrone, un protone, o una qual-
siasi delle tante particelle atomiche sco-
perte negli ultimi anni. Nonostante tut-
to, nessuno mette in dubbio la loro esi-
stenza: le prove sono indirette, ma co-
munque in equivoca bili. La iraedo lascia-
ta da un elettrone sul dispositivo di rive-
lazione rton lascia dubbi ìn chi è capace di
interpretarla correttamente.
Il gioco
Ecco un gioco molto semplice, che vi
mette nei panni di uno scienziato impe-
gnato ad indagare sulla struttura atomica
di un misterioso cristallo.
L'indagine viene fatta mediarne
proiettili atomici sparati violentemente
all'Interno del cristallo stesso. Il punto di
uscita fornirà, a chi È in grado di interpre-
tarle, utili indicazioni riguardo la posi-
zione degli atomi che costituiscono il
cristallo.
Le figure a corredo consentono di
comprendere come l'effetto della colli-
sione proiettile-atomo sia differente a se-
conda del punto di contatto, La figura 1,
in particolare, mostra la variazione di
traiettoria dovuta alla '"nube elettroni-
ca", La collisione col nucleo provoca in-
vece *T a ssorbi mento" (figura 2), mentre
un particolare tipo di legame dà luogo ad
una riflessione del proiettile (figura 3).
Il programma
13 cristallo è rappresentato da una
grigli a -scacchiera di dimensioni IO per
IO: i proiettili dalle lettere dell’alfabeto.
Sono previste tre opzioni, “spara*', "ten-
ta \ ‘ basta ”, cui si accede digitando la
relativa iniziale.
Selezionando “S", un carattere blu
compare sull'angolo in alto a sinistra del-
la griglia. I tasti “<" e spostano la
lettera lungo la cornice e permettono di
scegliere il punto di ingresso nel cristallo.
Premendo la barra spaziatrice parte i]
colpo.
R g . 1
Commodore Comput&r Club - u?
SIMULAZIONI
Fig. 2
*
l
t
t
1
/
V
/
/
. j
■V
9
9
n
9 j t
\
t
/
\
\
/'
*
t
t
t
i
t
—
| t
1
1
L
1
|
t
t
— — j— —
1
i
j
. 1 ,
t
I
Per aiutarvi nella visualizzazione* una
lettera di colore bianco resterà ad indica-
re il punto d'ingresso, mentre un'altra di
colore nero resterà ad indicare il punto di
uscita. Se, lungo la cornice, un particola-
re carattere compare una sola volta, si-
gnifìcherà che i] proiettile Astato assorbi-
to o riflesso a seconda che lì suddetto
carattere sia bianco o nero. Di notevole
aiuto sono gli effetti sonori. L urto con-
tro un elettrone è accompagnato da un
"PI IMG ", l'assorbimento da parte di un
nucleo da un,,, “PONG". Se non viene
emesso alcun suono vuol dire che il
proiettile ha attraversato il cristallo,
uscendo dalla parte opposta senza incon-
trare ostacoli.
Dopo un certo numero di colpi, se si e
convinti di conoscere la posizione di un
atomo, bisogna selezionare T" (tentale
dare le presunte coordinate. In caso di
felice deduzione il punteggio si incre-
menta, altrimenti si ha una consistente
diminuzione. Attenzione, quindi: ,l ten-
tare*‘ solo se Si è sicuri. Nel caso facciate
cetltr, i punti ottenuti sono funzione del
numero di colpi sparati < pici colpi = me
no punti) e degli atomi già scoperti (più
scoperti = più punti).
L'opzione “B" (basta) serve a chi si
arrende troppo facilmente, ma è animato
dalla curiosità di capere come stanno le
cose.
Il programma pubblicato è una versio-
ne unica per Commodore M. C-16 e
Plus-4,
Chi volesse modificare il commento
sonoro deve alterare le apposite routine
cd in particolare:
* linee 690-695: azzerano tutti i registri
delSLD e pongono il volume al massimo;
* linee 700.710: "PINO" o "PONG' a
seconda del valore di FR :
* linee 715-725: commento ad un colpo
andato a vuoto;
* lìnee 730-740 commento ad un colpo
riuscito.
La strategia
Gli atomi più superficiali sono più faci-
li da trovare, per cu; è buona nonna spa-
rare i primi colpi dagli angoli. Travati in
questo modo i primi tre o quattro, biso-
gna far lavorare il cervello ed avere an-
che un po’ di... fortuna, che non guasta
mai.
Non sparare da un punto da cui È usci-
to un proiettile perchè il percorso di an-
data e ritorno è univocamente determi-
nato, per cui viene solo sprecato un
proiettile. Il gioco finisce quando sono
stali individuati tutti gli atomi, che sono
9 t oppure finiscono i proiettili, per un
totale dì 26.
Fig, 3
! l
!
— i- — i
/
X
\
— - — 1
/
\
/
\
«
i
•
•
V
X
/
V
/
V
/
|f r
t
i*
— *
t
i
n
t
1
*
—
— —
i — —
n—
I
t
(
—
-
62 Comm odore Computer Club
SIMULAZIONI
100 REM CDI1MODQRE SI
IBI REM C-1G fi PLUS 4
102 :
105 REM CANNONE ELETTRONICO
136 :
110 REM SIMULAZIONE SEMISERIA
115 REM DI ANTONIO UI SCONTI
120 :
121 PR INTCHRSC 147) "1- COMMODORE 64”
122 PRIMI ”2- C-16 PLUS-4”
123 GETAS: IFAS-””THEN123
124 I FA$“”1 ’'THENMS“1024 ; PDKE53200 , 15 : P0KE532B1 , 15
125 IFAS- ’’ 1 "THEN; POKEG50 , 126; CO-54 : 5C-SS296 : GOTOl 30
127 MS- 3072: COLOR0.2, 5: C0L0R4, 2. 5; COLORI , 2 , : 5C-204G
130 POR I - 1104 : X2S-X2S+CHHSC 175 ; NEXT : X2S-CHRSC 19)-*-X2S
140 X3S-CHRSC 191+CHRSC 171+CHRSC 17) ; GS-CHRSC 173
160 »**####***#**»*
165 OIM Bt 11 , 111 . RRC9), CCC9D
170 DEE FNPCMS) -M5+40+B0+C+C R-*-l 1 +2
1 75 PRJMTCHRSC 19) ; GO5UB500 ; GDSUB535
180 PR I NTCHRS C 161 KSCHRSC 5 1 CHRSC 19 5 ” -RECORO "RECHRSC Jl 5
IBS GO5UB570: GOSUS6S0
190 FRI NTX2S ; KS "-SPARA” : PRIMI G$: KE” -TENIA” : PR1NTGS ; KS” -BASTA”
13S PRIMTCHPSC19) HSKSCHRSC 145 5 CHRSC 5 1CHRS CIBI CHRSC 291 "PUNT ! " ;
196 PRIMI PU; CHRSC 157 1CHRSC 146) ” , , “CHPSC31 1
200 GEI AS:IF AS<>"S” AND ASO "T" AND ASO “E” THEN 200
205 GQSUB5S5
210 IF AS-”T" THEM 410
215 IF A$-”B” THEN PR-26
220 R-l : C-0 : PR-PR+1 ; IF PR> 26 THEM 6O5UB630 : FOR K-l TO 3 : GDSUB730 : NEXT : GQTO620
225 POKE FNPCMS) , PR: POKE FNPCSC) . 70
230 GET AS:F1-1
235 OM C-CAS-CHRSC44) )-C AS-CHRSC 46 ) )"2-CfiI-CHRSC32) 1+3) G0TG245, 2^5
240 G 07 0230
245 IF R-0 AND C< = 10 THEM POKE FNPCMS) , 32: C-C+Fl : R— CC-11 )-(C-0) : GOT0265
250 IF P-ll AND 0-1 THEN POKE FNPCMS) , 32; C-C-Fl . R-l 1* CC-01+CC-11 1 ; G0T02SS
255 IF C-0 AND R>-1 THEM POKE FMPCM5) , 32 : R-R-Fl : C— C R-0) -CR-1 1 1 : G0T0265
260 IF C-ll AND R< 12 THEN POKE FNPCMS) , 32: E-E+Fl ; C-ll+CR-1 1 )+ CR-0) ; G0T02G5
265 POKE FNPCMS) , PR: POKE FNP C SC ) , 70 : GOTO230
270 F1--1 : GDT0245
275 F2-0 : POKE FNPCMS 1,32
2B0 ON F2 GOTO305, 310, 190
2B5 IF R-0 THEM POKE FNPCMS-1 ) , PR ; POKE FNPC5C-1 1,113: Fl-1 : G0TO315
290 IF R-l 1 THEN PDKE FNPCtlS+1 5 , PR : POKE FNPCSC+1) ,113; FI— 1 ; G0T0315
295 IF C-0 THEN POKE FNPCMS-40 1 , PR : POKE FNPCSC-401 , 1 13; F3-1 : Fl-1 : GOTO310
300 IF C-ll THEM POKE FNP CftS + 40 1 . PR: POKE FNPC5C+40) . 113 : F3-1 : FI — 1 ; GOTO310
305 GOSUB320; GOTOl 90
310 IF F3-1 THEM F3 — 1 ; G0SUB375 : GOTO2O0
| 315 F3-1 : GOSUB340 : BOTD280
I 320 IF R< 1 THEM POKE FNPCMS-1 ). PR: POKE FNP CSC-1 1 , 0 : RETURN
I 325 IF R> 10 THEM POKE FNPCMS* 1 1 , FR ; POKE FNPCSC+1 1 . 0 : RETURN
330 IF C<1 THEM POKE FNPCMS-40) , PR; POKE FNFCSO40) , 0 : RETURN
335 POKE FNP t NS+40 ) ,PR: POKE FNPCSC + 40) , 0 : RETURN
340 R-R+Fl : I F R>10 OR R<1 THEN F2-1: RETURN
I 345 ON GCP.C) GOTO 355,360.355,370
!i 350 GOTO340
355 FI — FI
360 F2“2: FR-200: GOSUB690: GOSUB700; RETURN
I 365 FI— FI : FP-200 : GO5UB690 ; GOSUB700 ; GOTO340
370 F2-3: FR-10: GOSUE630: GO5UB700: RETURN
Commodore Computer Club 63
SIMULAZIONI
375
390
305
390
395
400
405
410
415
420
425
430
435
440
445
450
455
460
465
470
475
460
405
490
495
500
501
505
510
515
520
525
530
535
540
545
5S0
555
560
565
570
575
500
5G5
590
595
600
605
610
61S
620
625
630
635
640
645
650
655
660
665
C-C+Fl ; 1F O10 DE C< 1 THEN F2-1 : RETURN
ON GCR,C) GOTO 350,395,400,405
6QTG375
FI— FI
F3*2 : FR“200 ; GQ5UB590 i GOSUB700 ; RETURN
Fl — Fl : FR-200 : GOSUBG90 : GOSU8700 : GDT0375
F2-3: FR"10: GOSUBB90:GD5UB700: RETURN
PRINTX2S ■ K$" , , . DANNI PRINTGS ;K$ rf LE": PRINTGS ; K$” COORDINATE"
FOR 1-1 TO 10 : POKE NS+42+2* 1,1: NEXT
GEI A $:IF AS<"A" OR A THEN 420
R-ASC CAIE 1-64
FOR 1-1 TO 10; POKE N5+42^2* I , 32 : NEXT
POR 1-1 TD 1 0 : POKE N5+42+B0* I , 47+ 1 ; NEXT
GEI AS-IF A5< "O” OR AS> ”9 11 THEN 440
C“ASCC AS5-47
FOR 1-1 TD 10: POKE E1S+42 + B0* I , 32 : NEXT
60509555
IFG.CR O < > 4THENPR 1 NTX3$ ; K5" -MANCATO 1 hl : PU-PU-S50 : GD5UB690 ; GO5UB730 : G0T0193
F4-0:FDR 1-0 TO AI : F4-F4+ CC-CCt li) *C R-RRC I> ) ; NEXT ,
1F F4<>0 THEN PR 1 NTX36 ; KS ”G I A 1 TROVATO f< : GOSUB690 : GO5UB730 ; GOTO190
PRINIX3S;KS; "-CENTRO f ! - " : PU-PU+ 1 0* C 25“ PR ? +50* AI
POKE FNF(M5> , 01 : POKE FNPCSO , 70
PR rNTCHRSC19)H#KSCHRSC 145 )CHR$t 29) "PUNTI : r, PU ; CHRS C157 ) ” . * "
G05UB715: AT-AT+Ì; CCC AT)-EZ: RRC AT)“R : IF AT<9 THEN 190
N5-1 : G05U5715 : GOTD620
C25-CHRSC 32 )+CHR$t 32) +CHREC 32 )
BE-C2S + CHRSC17U : FOR J-l TO 9 ; BSi-BS+CHRS C 1 95 ) +CHR5C 21B) : NEXTJ
CE-C2E+CHRSC 194): FOR J-l TO 10 ■ C$-C$+CHR$(32)+CHR$C 194) : NEXTJ
ES-C2$+CHRBC176) : FGR J-l IO 9 : ES-ES+CHESC195) + CHREC 178); NEXTJ
□ È-C2Ì + CHREC 173) : FDR J-l TQ 9 : DS^D5+CHR$C 195) + CHRSC177) : NEXT J
BS-BS+CHRSt 1951 +CHRS C 1 79> : ES-ES+CHRSC 195 3+CHRSC 174 )
D$-D$+CHR5tl95)+CHR$tiB0)
FOR 1-1 TO 25: K$-K$+CHR$t29) : NEXT : FOR I“1 IO 20 : HS-H$+G$ ■ NEXT : RETURN
FRINTCHREC 1441CHRSC 1471CHR3K 17) : PRINTES
FOR J-l TD 9;PRTNTCS; PRINTB^’ NEXTJ
PRINTCS: PRINTDS
PR 1NTCHRSC 31 ) : RETURN
FRINTX3$;K$ M ,B :REn 13 SPACE
FOR K-l TO 3: PRINTGSKS iJ - M :NEXT
RETURN
FOR 1-1 TO 9
C*-RNOC0)»0+l:RV"RNIK0)+9+l
1F GCC/s+1 , R’^ + l )— 4 THEN 575
GCO^+l , R>.+ l)-4
FOR X-0 TQ t : FOR Y-B TD 1
A-GCC*+2*X T R*+£*Y3
IF A — 1 OR A -2 OR A-3 THEN GC C?S+5*X * R3s+2*Y> -3 : G0TQ615
IF A-4 THEN 615
6CC£+2*X, R*+H*Y3 — CX-Y)-CXOY)*2
NEXT : NEXT : NEXT : RETURN
POR C-l TD 10: FOR R-l TO 10
IF GCR t C)- 1 THEN POKE FNPCnS) , 70 : POKE FNPC SO 3 , 1 13 : G0T0645
IF GCR , 0-2 THEN POKE FNPCM53 , 77 : POKE FNPCSO , 113 : G0TD645
IF GCR, 0-3 THEN POKE FNFCH5 ),BB; POKE FNPC 50 , 1 13 : 60X0645
IF GCR, 0-4 THEN POKE FNPCflS) , 01 : POKE FNPtSC ) , 70 : GDT0645
NEXT: NEXT
PR I NTX25B ; K$ 11 M UUD1 tr : PR INTKS”JEJ GIOCARE “
PRINTKS" 3 ANCORA ^ »
GET A$ ; I F A$< > "S 11 ANO A£<>"N” THEN S60
IF A$-"tvT THEN PRXNT J, a^:ENO
64 ■ Commodore Computer Club
SIMULAZIONI
570 IF FU> RE THEN RE-PU
675 60SUB535: PR INTCHRSC 19)KSCHRSC5JCHRSC IBI “ . RECORD '*RE ; CHRS< 31 1
SS0 FOR 1-0 IO 11: FOR J-0 IO 1 1 : SCI , J)-0: NEXT : NEXT
605 FOR 1-0 TO 9;CCC 1 )-0: RRC 1 i>-0: NEXT;AT-0: FU-0: PR-0: N5-0 s G0T01B5
590 IF CD<>64 THEN U0LB: RETURN
635 FOR I-54B72 TO 54295: POKE I , 0: NEXT : POKE 54296 , 15: RETURN
700 IF CO< >64 THEN 50UND1 , FR+5 , 10: FORI-1TQ100 : NEXT : RETURN
705 0-54276: POKE W+2.5:P0KE W-3,FR:P0KE U, 23: POKE 0,22
710 FOR 1-0 TO 100: NEXT: RETURN
715 IF COOG4THENFDRI-1TOB005TEP5: S0UND1 . I , 1 : NEXT: RETURN
720 Uf-54276: POKE y+l,B:POKE U+2,251 : POKE 0,23: ft-14: FOR 1-0 TO NS ; P0KE542B7 , A
725 FOR J-l TO 250: POKEW-3, J : fl“A+ .05: NEXT : NEXT : POKE 0,22: RETURN
730 IF COO 54 THEN FORI -500TO1STEP-5: 50UND1 , I . 1 : NEXT: RETURN
735 0-54276 : POKE 0 + 1,0: POKE 0 + 2, 24B: POKE 0 , 05: I -100 : J-230
740’ FOR Z-1T025 ; POKE W-4 , I : POKE 0+11 , J ; I- I* .90 : NEXT ; POKE 0,34: RETURN
750 END
Fai vedere chi sei !
DIVENTA UN ESPERTO IN PROGRAMMAZIONE BASIC
Se dentri assicurarli artcJrc tu un ruoto da
esperto m un modernissimo campo di attiviti,
Scgfl-i Radioelctm ha pronto per te il Corse
Movi» PARLA BASIC
7L FUTURO"
PER LA TUA AFFERMAZIONE,
)
Un completo ciclo di sturbo por apprendere
l 'arsati e la programmazione Basic,
conoscerne indtspenia-
bli per comunicare con
mrcrqeompuiieir, di-
ventare un esperio e
servirti di apparecchia-
tura ancht spegnati-
ve. In \ì lenoni e ] cas-
sette prtìgramir tutta
la teoria e la pratica del linguag-
gio Basic. Fin dalk- prime leeoni potrai dialoga-
re con il tuo Commodore c vaiertene per lavo-
ro o per hobby.
UNA GRANDE OCCASIONE PER TE,
Se ancora non hai né il computer Commodore
né A rcg'Stratoj-e dedicato acce I occasione
per riceverli subito Se possiedi g-i il computer
e a registratore dedicato, allora ti minta solo il
CORSO BASIC,
UNA SCUOLA SU MISURA
A CASA TUA ,
Comodili istalliti 6 studio, senza rinunciare
aSSe tue attua-i ittici. Con Scuola Radioeletira
impari come c quando vuoi tu. cor tutta l’as-
sistenza che ti serve.
UN METODO
COLLAUDATO DAL SUCCESSO,
Scuola Rtfdionk-ttra mette a tua d> spot-noni? un
piano di studio ivan latissimo corredato dal ma-
terval. piu aggio rmo che resteranno di tua pro-
prietà Tutta la teoria® la pratica che ser-
ve per imparare davvero
UNA REFERENZA
INDISPENSABILE,
_ct,
Il tuo Attestato di Stud-o. che a fine corso,
restmoftisrà HtuoNveVo di apprendimento
\ jVANTAGOi “EIETTRACARD“ |
Uri Club esclusivo, nóftrvttP a tutti gJ: Allie-
vi Scuoia Ridonerà, che ti dà diritto a tante
sorprese uniche e sempre vantaggiose.
f«.W0 GIOVANI COME TE HANNO
TROVATO LA VIA DEL SUCCESSO
CON SCUOLA RADIOELETTRA, ORA
TOCCA A TE QUESTA GRANDE OP-
PORTUNITÀ,
SPEDISCI SUBITO IL TAGLIANDO
RIPRODOTTO A FONDO PAGINA.
RICEVERAI GRATIS E SÈNZA IMPEGNÒ
TUTTE LE INFOR NAZIONI CHE DESIDERI. I
Scuola Radio e Jet ha
VIA STÉiiONE 5. «Oli* TORINQ TEL (01 1 ■ 47A«1
CON SCUOLA RADIOELETTRA PUOI SCEGLIERE FRA
30 OPPORTUNITÀ' PROFESSIONALI.
Card di Elettronici
TecrKi'eleLrrtF'C*
SpeiVncrwile
tlésrrcncj (ondinufiUfe c
it'ittetfluiimLiOBi
ElcUronci digitile
■e pvtrweflwier
PiHa Kant
- Elcdrovei L-idmiruV
EkUrcftCJ
- Ttfcv*nc bunco e w 0
- TtknVQTE 1 CT^Wl
- AfflpticiKW Ktf«
- A!U tedclLL
Ssv'enfti !n»P:n
Gerii Tetnjio ProfettionilL
EHltrOICC^tJ
- Dije|flIlDre rHKJlrtCQ
pr^prosia
A»iu*rt d (fccpurire
«Uè
hocartld as-COriptiriTOr-:
- Tecnici: offic'm
- PfEtrjwj
- PrO|rìimi«Uii*ne-UJ
cUttìntc^i a^rero-sO
Natami ì «Ave
t, u Vjnrrtf induro
i^Kyki-Unrtn
Ciìrti Corrtmcrti ali
fletei conm^tgsif
- lUptJlta d lilcrdl
Dilitógn^
- Lkj|ue stròfe*
Coni Prcfeuuull e Arditici
- Fsiojrilii banco c itera
fflWJìfti jùirp-nki tgbrt
EtatpG rpttiA
LiptHi n ukticv
Clci-js a mischci*
d'iilg -(Èli Hniù-rio drlii Pubblici liJ rur m+,t n rii?"
Stuoli Aid. wlettri ■ iiiaUjij illi A.I.LCC. iA nwiii io-**’ ita S ih Sewd* pt* C«TÌtp<n'JfflnfMi nwii urnim.v
□ Si,
XF37
Vi prego * Jarmt ivert.jmiii < WU irwgnci il mat^-iaie informilo rditivc *
Corso di
COCNOmf _j .
NOME
VIA ,
LOCALITÀ
N‘
ETÀ _j AftOFES^ONE >—l — - — i — -
MOTIVO DELIA RICHJÉ4TA PEFuAVQRG □ m HOB&V □
VENDITA PER CORRISPONDENZA
GRUPPO CONTINUITÀ
Fornito -senza le 12 baveri!-’ a stilo ricaricatili
Censente il funzionamento dm Vostro computer
CnmmgdDrfi! CE 4 a VI C SO ili a$££rt2a 111 CO-TSn-
tp Durala (il funzionamene 30 minuti. Ri cane fi
trainila aHmentatore Commodore
KIT ALLINEAMENTO TESTINA
Composto dal cacnavìte, nastro di CQrtlrollc e sirurvonro 0 in
ratina con monitor acetici pcrmntrn partali □ u lineaménto Cg-
negl Strafori digitali anche con nastri comma rei r- 1 .
VELOCIZZATORE DI CARICAMENTO FLOPPY
Gartridge con un insiamo di ulltily n:siflfinri su rps ■uelociz^a'i
il drivt nel Commodore 6A
INTERFACCIA RADIO
Incis-pons.lbile per registrare CO
registratore Commodore model I
l ‘C2N" i programmi spedati pt
■K&ìjk^^i- 1 computer trasmessi dafle em4ten
6? gM^^v^BMMKS^-ftaE « radio.
CUFFIA PER
COMMODO-
RE C 64
Leggerissima per-
metto l'ascolto [Sa r-
sonalo det compu-
ter evitarxso di dv
tt rurbare durame i
giochi.
COPIATORE PROGRAMMI
DiFipns ìiuo hardware pm nitnttimm copie di na-
stri protetti o lurao utilizando due registratoti
Comm odore o compatibili .
DUPLICATORE CASSETTE
I ndisoensabii e per realizzare ce Ite lume. con s
rei) latralo^ no rme, -di uri nastro prunetto o et)-
caricimnnrn lurhn
Bufi quadri slot
Art CO 100
L
55.000
forte riaccia : ss su il e
Ad. CD 101
L.
30.000
Duplicatore cassette
Ari, CO 102
L.
30.000
Copiatore o-roq re miti I
Art. CD 103
L.
30.000
Fnlerteccia radio
Art. CD 1 04
L.
30.000
Kit allinea mento iestlng
Art. CO 105
L.
47.000
Allmentarore per C64 e VIC 2&
Gruppo continuità (tornito senja
Art, CD 1 0d
L.
45.0OO
le 12 batterie a Stilo ricaricatili)
Ppcco butrono (i2 siilo 1,2 Voti
Art. CO 10?
L,
66.000
ficai icab ili
Commutatore antenna
Art CD 117
L.
52.000
TVi'compoter
Art. CD 100-
L.
9,500
Tasto rea et
Art. CD 100
L,
5,500
interfacce Centro n ics
Art CD H£
L,
104.000
Espansione d> me moria per C 16
Velocizjatore di carità menta
Art CD Hi
L.
156.000
i1ap„
tspans=one di memoria per
Ari. CO 115
L,
49.000
VtC 20 16K
Ari CD 1T6
L,
1 1 2.000
Modulatore E sre e ulivi?
Ari. CD 120
L,
72.000
Penna ottica grafica
Art„ CD 121
L.
45.000
Tavolètia gralita
Aft. CD 130
L,
235.000
M ulti presa con filtro - ? prese
Art. CD HO
L.
41.000
Cuffia per Commodore C 64
Stapii.zzaiore elertromco di
Art. CD 150
L.
13.000
tensione 50C W
Art . CD 1 60
L.
430,000
Gruppo di cint incita 60 W
Art. CD 1 70
L.
400.000
Gruppo di continuità 300 V
Inverno r 12 Vórt CC. 22Ù Voi! ca.
Art. CD 103
L.
302.000
SCO Watt
Art. CD 190
L.
207.000
Cavo ali meni azione
Cavo drive o stampante
Art. CD 200
L.
4. eoo
Commodore
An CD 2QS
1 .
6,500
Proroga per Joystick - mt 3
AM. CD 210
L
25.000
Prolunga per cava Tv - mt. 3
Ari. CD 215
L,
43,500
Cavo audio ■ mi. 6
Adattatore Joistck {Atan e C64 al
An. CO 220
L.
15.50O
C 16)
Art. CD 225
L.
10.5OO
Adattatore regialrstore per C 16
Art. CO 226 '
1 L.
10.506
Mascherina antw iffeSSO 12"
Nastro inchi wtratà per Tally -
Art. CD 300
L.
35.000
mi. ao
Naslro mchiosrrato per Tally -
Art. CO 610
L.
16.500
mt. ISO
Nastro incfiiùsJràtù ptìr Tally 1000
Art, CD 611
L,
16,500
e HorteywcM
Mastre inchiostrato per
Art. CO 612
L
9.500
Commodore MRS SOI
Mastre ine Moscato per
Art. CD 614
L,
13,000
Commodore MPS SQ2
Mastra me h tostato por
Art, CD ete
L,
10.000
Commodore MPS 503
Art. CD 6 FS
L.
19,500
Mfiuse? per Commodore C &4 Ari. CO S6Ù
Pacco carta lettura facilitala
24 11 ' modulo da 500 logli con
L.
240.000
bordi a strappo
Supporto stampante porta carta in
Art. CD 630
L.
13.500
pjexigtà&s 'lume" - normale
Supporlo stamparne porta caria in
AM. CD 660
i.
59.000
piesuigtàss ' lume"' -rinforzalo
Floppy disk 5" singola (accia
doppia densità "OOP" ■
Art. CD 670
1-
30.000
conf, 1 0 pozzi
Floppy disk 5" singola faccia
doppia densità "CBS” ■
Art. CD 700
L,
40.000
coni, 10 pezzi
Floppy disk 5" singola tàccia
doppia densità "vEReATiM" -
Art. CD 7D2
L
33.000
coni, io pezzi
Art. CD 704
L.
*2 000
Floppy disk 5 ,r singola taccia
doppia densità "DVSAN" -
doni 10 pazzi
Mastri magnetici C 10 digitali ■
Art CD 706
L.
$$W<
oonf. IO pezzi
Art. CD 712
L
20.001.
Maalri magnatici C 15 digitai
Coprìtàsliera in pfexiqlass per
Art. CO 714
L.
21 ,001
CS4 - 06 e VIC 20
Copriiasfiera in stòffa par
Art. CD 750
L,
1 6-OOf
C64 - Ciò & VIC 20
Art CD 760
L.
10,501
Vaschetta porlàltàppy m ptexiglass
per 40 dischi con chiavo
Art. CD 770
c.
3O.00I:
Vaschetta pdrtàflPppy iti plexiqlass
per 90 dischi gnn chiava
Ari. CD 700
L.
37,00t
KM puIizh testine registratore
Art CD 615
U.
13.501,
Kit pulizia disk drive
Art. CD 620
L.
26.000
Kit pulii: a testiera
Ari CD E 30
L,
16.500
Foratore disk in plastica (per utifiz
zare la seconda faccia dm dischi)
Ari CD 640
L,
10.000
Farataré disk in melai lo "lako"
Art CO 6-19
L,
14.000
joystick; Specirav.-tìea il
Art CD È5G
L,
27.000
Jcysiitàr a Microswitch
Joyslirik senza fili con unità
Art CD 651
L.
52.500
riceverne (funziona a batteria)
Arf CD 652
L.
98. 000
Joy&te per Commodore 16
{onrjinaie}
Art CD 130
L.
29.500
TUTTI I PREZZI SONO COMPRENSIVI DI IVA
NON SI ACCETTANO ORDINI INFERIORI A L 90,000
CONTRIBUTO FISSO SPESE DI SPEDIZIONE L 5000
SI ACCETTANO ANCHE ORDINI TELEFONICI
' Al NUMEHE 0522/661647-661471
BUONO DF ORDINAZIONE
NOME COGNOt.lE
1
VOGLIA!
— - -■ - — r » — ■ - r
N.
E INVIARMI IN C
Art
ontrassegno
L
N.
Art.
L.
INUlHIZJiO
1 N |
1 1 1
N.
- F . . - — ■
Art.
L.
C.AP Ciri A PROVINCIA
1 II 1 1 j
SPESE SPEDIZIONE L. 5.000
PAGHERÒ AL POSTINO L.
COMPUTER SERVICE VIA A. MANZONI, 49-42017 NOVELLARA (RE) -TEL. (0522) 661647
PERIFERICHE
QUALSIASI COMPUTER
Una stella di stampante
dì Alessandro de Simone
IVI
UTAoito spesso, proprio da queste co-
lonne. abbiamo vivamente sconsigliato i
nostri lettori dall acquisi are prodotti che
non fossero di marca Commodore, In
molti casi, infatti, dopo alcune prove su
tali apparecchi, ci rendevamo corno che
la compatibilità non era reale e* nei cast
più fortunati, era necessario ricorrere a
programmi in linguaggio macchina che
adattassero il computer alla periferica in
prova .
N^: caso della stampante STAR 5G-
HX\ invece, non si sono verificati incori-
vemntì di sorta.
Abbiamo iniziato a provarla con pìc-
coli programmi che verificassero la vali-
dità dei comandi spedali riportati sul li-
bretto dì istruzioni. La totale assenza di
incori venienti ci ha stimolato ac ^riìizzar-
E’ possibile trovare
in commercio
periferiche di altre
marche realmente
compatibili con i
computer
Commodore? E, se
ci sono, che
vantaggio offrono
rispetto alle
“ originali "?
la in unione a programmi professionali e
i nserendo su E retro di un Commodore 64,
anche cartucce che potevano interferire
sul Bus seriale di trasmissione dati J ri-
sultati sono stati i seguenti:
* riproduzione fedelissima, nella stam-
pa di listali BASIC, dei caratteri speciali
del colore, movimento cursore eccetera;
* funzionamento ineccepibile con ] pro-
grammi di word processor Easy Script e
Word Pro III, compresi i caratteri speda-
li dì stampa in allargato e in tc verse;
* funzionamento perfetto col program-
ma Cale Resu ! t in lune le possibili fun-
zioni di output;
Commodore Computer Club - 67
PERIFERICHE
■“j I tr ’ I ;l I 1 f i"" 1
1} I
STAMPA 'ARMALE
□UESTC E ' UH ESEMPIO DI PILO
NEAF LETTER QUALI IV
OLlEnTO f: *
I I! IMI TÉf 53? EDI Bf
IZ3 3C SE3' raE
iT”^ 3fiT BT. er"“ ta Tn ìBI-n?
~i s -* r a
” rar— tp r — 1 v :
- O II — HIT — WT '
o
Questa e ' un Bsemc'ic di stampa in BUSI HESS HQDL
Lì U€
- ■■ -■ ■■
t ¥ ^ f t ."' t
- 1- ._ j. l
Queste r
: n ==3‘Tci: iì^p =
: o:i3"sit=
■ 1 ** w ^j<r - - 1 L
* ^ ■ li ■ h T* I* ar ■ ■ ■
tè)
«
Guasta
a' un 558fnpia
di
Stampa
enfatirrata.
88- Commodore Computer Club
PERIFERICHE
• nessun problema, addirittura, col pro-
gramma Prim Shop che, per chi non lo
sapesse* esegue perfino disegni di vario
formato, tipo e dimensione in alta risolu-
zione su I video e in seguito li “scarica” su
stampante mediante una routine di Hard
Copy.
Altri programmi non sono stati provati
ma è intuibile che nuove prove sarebbero
risultate superflue. La presunta compati-
bilità* infatti* cade come una mela mar-
cia nei casi di Hard-Copy di pagine in aita
risoluzione. Anche programmi di W/P,
spesso, non sono ben “compresi” da
stampanti poco ortodosse.
Non è questo il caso della STAR SG-
10C che, in seguito a colluttazioni con i
colleglli (che la volevano a loro disposi-
zione in Redazione}, ho portalo a casa
mia e uso normalmente.
Avrete notato, anzi, che da un po' dì
tempo la qualità di stampa dei listati ri-
portati sulle pagine di Commodore Com-
puter Club è decisamente migliorata.
Quei listati, l'avrete capito, sono stam-
pati proprio con la STAR di cui stiamo
parla ndo„.
Le caratteristiche tecniche
La velocità ( 120 caratteri al secondo)
è, in effetti, consistente e sottolineata dal
rabbioso rumore {comunque, contenu-
to) della testina di scrittura. Questa* di
ragguardevoli dimensioni, partecipa a
dare queir immagine di sicurezza e affi-
dabilità che. insieme al peso della Messa
stampante, consente di collocarla tra glì
apparecchi di una fascia “superiore"*
F' possibile utilizzare fogli singoli e
pacchi di fogli perforati. La loro lunghez-
za (11. 12 pollici) può esser fissata da un
mini deviatore Anche l'avanzamento
per rigo può esser impostato a 1/6 oppure
1/8 di pollice in modo da avere documen-
ti più compatti.
E 1 ovvio che le precedenti impostazio-
ni possono esser variate via software.
Mediante minuscoli deviatori, accessi-
bili sul lato òstro deiPappareechìo* 6
possibile* inoltre, selezionare'
« caratteri “normali” cd "italici" (cioè
leggermete inclinati a destra, una specie
dì corsivo);
* densità normale oppure condensata
f IO* 17 caratteri per pollice);
* stampa normale oppure NLQ (Near
Letter Quality: Qualità simile a quella di
una macchina da scrivere). In questo ca-
so ìa testina passa due volte sullo stesso
rigo e non è più individuabile la matrice
dì puntini* ma ogni carattere sembra bat-
tuto da un martelletto:
* numero di periferica 4 oppure 5;
* segnalatore acustico di line pagina e
conseguente inibizione di invio caratteri.
Il computer, cioè, non manda più carat-
teri cd attende che venga inserito un
nuovo foglio.
La matrice di stampa
E' di ben 8x 1 1 nel modo standard, 8x6
in modo grafico, 7x60 (grafica bit image)
e 17x11 nei caratteri programmabili. Vi
sono* come à intuibile, discendenti (an-
che se piccoli) con conseguente elevato
grado di leggi bilità da parte di coloro che
sono abituati ai documenti eseguibili alla
macchina da scrivere,
La sua programma bilità è piuttosto
semplice e, comunque, supportata da
numerosi esempi sul libretto di istruzioni
che, in accordo alle cattive abitudini, è
solo in inglese.
Caratteri speciali consentono la stam-
pa in allargato (fino a quattro volte), re-
verse* business mode (maiuscolo minu-
scolo)* “entrata" in modo grafico* avan-
zamento di rigo, nuova pagina eccetera
Indirizzi secondari permettono la scie-
»■
zione del modo testo oppure grafico, la
formattazione di un particolare formato
di stampa* il numero di linee per pagina* i
messaggi dì errore eccetera.
Nessun comando* m som ma, C stato
trascurato non solo per rendere la stam-
pante realmente compatibile col proto-
collo Commodore* ma anche per sfrutta-
re appieno le potenzialità del-
l’apparecchio,
Un vantaggio non trascurabile
Se le caratteristiche tecniche della
stampante STAR non vi convincono a
sufficienza* basterà la seguente conside-
razione per far cadere gli ultimi dubbi
sulla validità del prodotto: il nastro, ele-
mento spes*so trascurato dal neo-
acquircme. dovrebbe, al contrario* esse-
re uno dd primi da teucre in considera-
zione. Chi lavora, al computer, "consu-
ma" abitualmente gnffidì quantità di car-
ta sia per stampare listati che lettere,
tabelle, documenti ed al irò. Le dolenti
note iniziano a suonare quando giunge il
momento di acquistare il nastro di
ricambio.
Il prezzo da pagare per l’acquisto di
cartucce inchiostrate speciali, indispen-
sabili per talune stampanti, è elevato. Se
non bastasse, inoltre, troppo spesso è
indispensabile acquistarle presso negozi
più che specializzati, esistenti, pratica-
mente, solo nd|e grandi città.
La stampante STAR SG-10C* invece,
utilizza un “normale" nastro da macchi-
na da scrivere, rintracciabile, a prezzo
contenuto* In qualsiasi cartoleria. Anche
nei cast disperati in cui non si riesca a
rintracciare una bobina perfettamente
identica all'originale (indispensabile per
il corretto inserimento neirapposito al-
loggiamento), sarà pur sempre possibile
estrarre il nastro da quella nuova ed uti-
lizzare i supporti di quella vecchia
Considerando che, per una stampan-
te. la reperibilità di un nastro inchiostra-
to è vitale* il giudizio sull'apparecchio
provato non può che essere positivo, an-
che considerando il suo prezzo di vendila
che, per le prestazioni descritte, t supe-
riore a quello di una stampante Commo-
dore “originale".
Per ulteriori informazioni i lettori sono
pregati di rivolgersi al distributore:
CLAITRON S,p,a.
Via Gallarate, 211
20151 Milano
Tel. 02/ 301.00.81
Commodore Computer Club -69
DIDATTICA
COMMODORE 64 C-16 Plus 4
Utilizzo del
joystick nel
Commodore 16
e nel Commodore 64
di Diego e Federici Carnuta
1 1 programma rappresenta una base di-
dattica per il lettore, il quale può aggiun-
gendovi istruzioni, può renderlo più ver-
salde cd interessante.
lì gioco
Appena dato il RUN. sullo schermo
appare il contorno entro il quale si svolge
il gioco.
Appaiono poi. in posizioni casuali, al-
cune chiocciole, che rappresentano gii
oggetti da catturare. In una zona prefis-
sata dello scherno appare il classico
“serpentello" che è possibile guidare
agendo sui tasti Y, B. G, H.
I.o scopo è quello di cattili are il mag-
gior numero di chiocciole senza provoca-
re una collisione del serpente con se stes-
so ocon il bordo dello schermo.
Quando le chiocciole presenti sullo
schermo ne lla prima fase del gioco sono
siate catturate, si passa ad uno schermo
con un numeri) maggiore di chiocciole.
Nulla di nuovo, come potete notare,
ma il breve programma sarà utilissimo
per “destreggiarsi 1 *, eoi joystick, rtei
meandri del BASIC.
Il listato base
Prima di affrontare uno studio relativo
all’uso del joystick, diamo insieme uno
sguardo generale al programma.
Nello stendere il listato, abbiamo pen-
sato di renderlo automaticamente adat-
ta bile ai possessori del 16 e de! 64 Infatti
ti, come sì può vedere dalla riga 10 T vi è
subito un controllo del valore contenuto
Molti lettori
richiedono di
illustrare come sia
possibile, in un
videogioco o altro
programma, inserire
il controllo tramite un
joystick. Per
risolvere il problema
con il C-16 ed il
C-64, ecco
riproposto, un
classico videogioco
gestito dalla tastiera
e le modifiche da
apportarvi per
utilizzare anche il
joystick.
nella locazione 1 del calcolatore
{PEEK(1}). A seconda del computer, in-
fatti, troveremo valori diversi.
Se in tale locazione ò contenuto il nu-
mero 21 KJ, allora il calcolatore è un 16 e si
attribuisce il valore 3072 alla variabile A.
Altrimenti, ri passa alla riga 20 cti alla
variabile À viene attribuito il valore
1024.
Questa differenziazione è resa neces-
saria dal fatto che i due computer, pur
avendo uno schermo di dimensioni idem
lidie, hanno le posizioni di memoria dif-
ferenti, Alla variabile A viene quindi da-
to if valore della prima locuzione dello
schermo video presente in memoria, che
corrisponde proprio a 3072 peT il 16 e a
1024 per il 64,
Nella riga 30 viene pulito lo schermo.
Nelle righe 40 u 50 viene costruito il
contorno dello schermo entro cui si svol-
gerà il gioco.
Nelle righe 60, 70 e 80 un ciclo FOR-
,.,NEXT si occupa di distribuire casual-
mente sullo schermo un certo numero dì
chiocciole, che corrisponderà a 5 per la
prima fase del gioco (la variabile B ò
uguale a zero) e aumenterà di 2 unità per
ogni fase successiva (vedere alla riga 111)
l'istruzione B— B+2). In particolare, si
noti nella riga 70 la scelta della posizione
di memoria per mezzo della funzione
RND(0); quindi si effettua il controllo dì
posizione libera in quella locazione (il
valore 32 corrisponde alcarattere della
barra spaziatrice) Se il controllo ha dato
esito positivo, allora si passa ainsirimo-
nc successiva che stampa il carattere del-
la chiocciola ( ) T altrimenti si ritorna
all 1 inizio della riga 70 e si ripete
l T op e razione.
70 - Commodore Computer Club
DIDATTICA
SINISTRA
T35
AVANTI
129
INDIETRO
133
destra
132
Tasto “Fìre** premuto
Dopo a ver da io opportuni valori alle
variabili l>, A, ed I (riga SO'), si passa al
coni rollo della posizione attuale del va-
lore come nulo nella locazione di scher-
mo davanti alla "testa del serpente con
le seguenti possibilità;
a i se tn tale locazione è presente il saio-
re IbO (riga 100) vuol dire che il serperne
ha toccalo se stesso od il bordo dello
schermo, per cui il controllo del pro-
gramma passa alla riga 180 ed il gioco
finisce con l'indicazione del punteggio
raggiunto;
M se è presente il valore 0 {riga 110)
allora si è sn presenza di una chiocciola
ed il punteggio viene aumentato
(E” F + lll); inoltre si incrementa la va-
riabile F che rappresenta le chiocciole
catturate, con un successivo controllò
che permette di passare ad un altra fase
del gioco se le chiocciole catturate sono
tutte quelle presenti sullo schermo:
c) non si e verificata nessuna delle
due precedenti situazioni allora si passa
alla riga successiva.
Nella riga 120 si stampa una nuova
casella colorata che rappresenta fava ti-
ramento del serpente; inoltre viene lei lo
il valore della variabile AS. F' interes-
sarne notare che si è usata !a funzione
GET per leggere il valore di A$: in tal
modo si evita 1 interruzione dell'esecu-
zione del programma che avverrebbe uti-
lizzando. ad esempio, ristiwione
INPUT
La variabile AS (variabile siringa > può
corrispondere ai tasti V, IT (1 oppure H,
causando uno spostamento del serpente
rispettiva mente verso l'alto, i l basso, a
sinistra e a destra.
Figura 1. Valori assunti dalle variabili
delia leva del joystick.
Infine la riga 170 contiene un ciclo
FOR che provoca il rallentamento Jd
serpente, ma... attenzione: poiché c pre-
sente la variabile 13. il serpente andrà più
veloce in ogni fase successiva del gioco!
Controlliamo l’tisecitzione del
programma con il joystick
C ome abbiamo detto, le righe da 13U ll
lóti servono a controllare il movimento
JQY(1) ù J0Y(2) al venere della posizione
del serpente per mezzo della tastiera. Se
avete già provata il gioco, vi sarete pero
accorti che il controllo attraverso i tasti è
molto Fileno agevole dell'uso del joy-
stick: vedremo quindi quali sono le istru-
zioni che permettono di utilizzare que-
st'ultimo al posto dei tasti.
Nel C ommodore lft vi sono due varia-
bili BASIC molto semplici da utilizzare,
che permettono il controllo del program
ma tramite il joystick: JOYfl ) per il joy-
stick inserito nella porta I e JOY(2) per
quello inserito nella porta 2.
Il valore assunto dalle variabili è di-
pende me dalla posizione posseduta dalla
leva del joystick in quel momento: i valo-
ri corrisponderli sono riportati in figura
Le istruzioni da sostituire sono tal-
me ore semplici da non richiedere
commenti:
tìO !FJOY{2) = ITHEND = -4(1
140 IFÌOY|2) = 5THEND = 40
150IFJOY(2) = 7THEND = -1
160 IFJOV(Z) = ITHEND = 1
Nel Commodore 64, invece, non esi-
stono istruzioni BASIC che permettono
di controllare la posizione del joystick,
ma vi sono due locazioni di memoria,
una pcrogni joystick, le quali contengo-
no valori numerici differenti a seconda
della posizione delia leva.
t ome sappiamo* ogni locazione di
memoria è formata da 8 bit. Nelle loca-
zioni 56320 e 56321 tutti gli K bit sono
normalmente posti a L rmi quando il
SINISTRA
7
AVANTI
INDIETRO
5
DESTRA
3
Tasto “Fire” non premuto
Commodore Computer Club ■ ? ■
DIDATTICA
AVANTI
taìt o
DESTRA
bit 3
Figura 2. Ecco quali bit delie locazioni 56320 e 56321 cambiano spostando la (ava
dal joystick
joystick viene mosso, uno dei 5 bit più
' bassi" assume il valore 0. In figura 2
abbiamo riportato i bit che cambiano in
funzione della posizione della leva.
Per poter controllare l'esecuzione del
programma tramite joystick vi sono di-
versi modi: uno dei più semplici t quello
di ricorrere airistruzione AND, Tale
istruzione presenta qualche difficoltà di
carattere concettuale, per cui ai lettori
alle prime armi consigliamo di evitare la
spiegazione data di seguito ed utilizzare i
dati contenuti in tabella 1 oltre agli esem-
pi che seguano per utilizzare il joystick
Ci limiteremo a dire che l'istruzione
AND permette di confrontare tra loro
due numeri nelle rappresentazione bina-
ria. Possono verificarsi i seguenti casi:
0 AND 0=0
0 AND 1 =0
1 AND 0 = 0
1 AND 1 = 1
C ome si vede dagli esempi, l'istruzione
AND fornisce come risultato il valore 1
solo se si confrontano due valori uguali
ad 1. Vediamo ora un esempio su 8 bit:
re utilizzata anche per confrontare diret-
tamente due numeri memorizzati duran-
te urr elaborazione.
Riferendosi alla tabella 1, le istruzioni
da sostituire ne! listato pubblicato, valide
per il COMMODORE 64, sono le se-
guenti: ( joystick in porta 2)
I3MF( PEE K (56320 JAN D 1 )
=0THEND=-40 -*
t4U IF (PEE K (56320 ) AN D2 )
=QTHEND— 40
150 IF(PEEK (56320) AN D4 )
=0THEND=4
160 IF{ PEE K (56320 ) AN D 8)
=0THEND=1
Attenti a digitare bene le parentesi!
Nel caso in cui la leva del joystick oc-
cupi la posizione centrale, tutti gli TF non
sorto verificati, poiché ì bit della locazio-
ne 56320 sono "normalmente" posti a t,
Se la leva è spinta m avanti, il primo bit
viene posto a 1) e l'istruzione IF alla riga
13H viene verificata, per cui si ha D— 40,
Miglioramento del gioco
sentanone iniziale con istruzioni del tipo
PR1NT. sia di carattere funzionale che
rendano il gioco più elaborato. Ad
ese inpio:
- memorizzate il punteggio finale dd
gioco che rappresenta il "record" rag-
giunto, Il record va aggiornato ad ogni
Fine partita.
- oltre alle chiocciole, inserite altre fi-
gure che diano punteggi diverbi od osta-
coli che vadano accuratamente evirati,
- per ì più esperti, inferite una subrouti-
ne sonora che produca un suono ad ogni
collisione con una chiocciola.
Con i! programma proposto speriamo
di essere venuti incontro a quei lettori a
cui non basta giocare, ma pretendono un
uso più creativo del computer.
VALORE
POSIZIONE LEVA
1
AVANTI
2
INDIETRO
4
SINISTRA
5
AVANTI-SJNISTRA
6
INOIETRO-SINISTRA
e
DESTRA
9
A VANT J -DESTRA
10
INDIETRO -DESTRA
16
FIRE
17
avanti-fire
18
INDIETRO-FJRE
20
SINISTRA-FI RE
21
AVANTI S1N,-F|RE
22
IND.-SEN -PIRE
24
DESTRA-PIRE
25
AVANTt-DESTR A ^ PIRE
28
INO -DESTRA-FIRE
Tabella 1.
Valori calcolati con
l'istruzione A ND p&r il Commodore 64
0000111 (= 7 in decimale)
000 10 1(1 (= 10 in decimale)
0010001 (= 17 in decimale)
La funzione AND putì ovviamente esse-
li listato che abbiamo presentato £
molto semplice e + come abbiamo detto
al l'inizio, rappresenta un punto di par-
tenza per elaborazioni più o meno com-
piesse, Le modifiche che possono essere
effettuate sono sia di carattere estetico,
preparando ad esempio una buona pre-
72 ■ Commodore Computer Club
DIDATTICA
1 REM IMPARIAMO AD
E REM INSERIRE I COMANDI
3 REM RELATIUI AL JOYSTICK
4 REM C-16 E COMMODORE 64
5 :
6 REM MINI-GIOCO DI FEDERICO CA
NETTA
7 :
10 IF PEEKCD-E00 THEN A-307E:GOT
0 30: REM PER COMMODORE 16
E0 A-1024 : REM PER COMMODORE 64
30 PRINTCHRSC 147) "TASTI : Y , G , 8 , H :
FOR T-l TO 1000 : NEXT : PRINTCHRS
C 147 )
40 FOR T»0 TO 3S:F0KE A+T,1G0:POK
E A+360+T, 160: NEXT
50 FOR T-0 TO 1000 STEP 40:POKE A
+T , 160 : POKE A+T-l, 160: NEXT: POK
E A+B97 , 160
60 FOR T-0 TO 5+E
70 C-A+RNDC 0)^300: IF PEEKCC)<>32
THEN 70
80 POKE C , 0 : NEXT
30 0-1: A-A+B97:F-0
100 IF PEEK£A+D)-160 THEN 1B0
110 IF PEEK C A+D) ”0 THEN E-E+10:F-F
+ 1 : I F F-6+B THEN FOR T-0 TO 60
0: NEXT: B-B+E: GOTO 10
1E0 A-A+D : POKE A , 160 : GET AS
130 IF A$-”Y” THEN D — 40
140 IF A$-”B” THEN 0-40
150 IF AS-”G" THEN D — 1
160 IF A$-”H" THEN D-l
170 FOR T-0 TO S0-B: NEXT: GOTO 100
1B0 PRINTCHRSC147) "FINE DEL GIOCO"
: PRINT : PRINT”HAI FATTO "E "PUNTI
li
Software speciale
Raffaello: Dipinge sullo schermo con il
solo joystick senza bisogno di Koala o
tavolette granché (C64 L, 12,000),
Banca Dati: Organizza la tua banca dati
perdonale (C64 t L. Ì2M\ su nasini, i
40.000 su disco).
Dìnastupob: La più appassionante ad-
vcnture del potere per C64 + La cassetta
contiene anche giochi per C I 6 e Vie 20.
L. 12.000.
Gestione familiare: Tre programmi per la
casa: gestione bilancio, dieta equilibrata
e scheda sanitaria familiare. (Có4, L.
12 , 000 }.
La Voce 2: Un programma ed un nuovo
comando basic per far parlare il C64, più
il supergame parlante ■"Mezzogiorno di
fuoco’'. L. 12.000.
24 ore basic: Un corso completo di baste
per Vic2Q, C64. Ciò e Plu54 (L 24 ODO j
Velocissimo basic; Corso completo di ba-
sic per C64/128. MSX e Sinclair Spee-
irutn fL. 24 000 K
Computer Music: Un completo music
editor con la più ricca compilation musi-
cale con brani di: Arcadia, Bach, Baglio
ni, Baldau Bembo, Band Aid, Beatles.
Beethoven, Dalla, Duran Durari. Gene-
si King, Listz, Madonna, Mina, Mo-
zart paoli. Pmk Floyd, Polite, Pooh,
Righe ira. Rossi. Simon & Garfunkel,
Spandati Balle!, Strauss, Usa for Africa,
Vivaldi, Zeppelin. (C64, L, 12*000).
Oroscopo Sé: L'oroscopo personale per
€64/128, C16/PLUS4 e Vie 2 0 (L.
12. ODO),
Assembler: Corso completo di Assem-
bler per C64 {L .12.000)
Commodore Computer Club - 73
Parte l'Operazione Fedeltà Systems. 1 premi?
T anti; una moto Cagiva Eiectra 1 25, printer- plotter e stampanti a marghe-
rita Commodore, abbonamenti alla tua rivista Systems preferita e libri
della biblioteca informatica Systems. Partecipare è semplicissimo.
Raccogli
i bollini
dell'Operazione
Fedeltà
Systems che
troverai
da oggi fino al 31 marzo 1986 - su
Commodore Computer Club.
Computer, Commodore,
Commodore Club. MSX, Personal
Computer, Sinclair Computer,
16/48, Special Systems, VR
Videoregistrareesuì libri Systems.
incollali sulla cartolina inseri-
ta in ogni rivista e spedisci-
la. Ogni mese partecipe-
ranno all'estrazione
tutte le cartoline con
almeno 5 punti. E ricor-
da: l'abbonamento a qualsiasi
rivista Systems vale subito 5
punti. Inoltre tutte le cartoline
parteciperanno al grande
concorso finale: in palio una
potente moto Cagiva Eiectra 12b.
EDITORIALE SYSTEMS
“Operazione Fedeltà”
VJe Famagosta, 75
20142 Milano
REGOLAMENTO DEL CONCORSO
Partecipano all'esitazioni mensili dfllt'OPERÀZSONÉ FEDELTÀ" SYSTEMS lot-
te te cartoline pervenute con almeno tì punii.
L' abbotto mente a una qualsiasi rivesta vate 5 punii cubilo.
I bollini die wn paiono su Computer, Commodore Club VR Videoretu-
sirare e i libri Systems valgono 2 punti; quelli di Commooore Computer Club,
Commodore e Sinclair Computer 1 punte; quelli delle cassette Special Systems
valgono 3 punti.
tl menilo promi dello esitazioni mensfh è cosi ripartito'
- dal 1° al S° estratto: 1 slampante Commodore.
- dal 6° al' 14/ estrado : 1 printer plotter Commodore
-dal 11 111 al 40" estratto: un libro a scalla deaia bibitoleca inlormatkia Systems
Oppure a sce la un abbonamento ad una rivista Systems
Tutte le cartolate inviale partecipano all'estro? rene finale di una molo Cagiva
Eiectra 125 co
L’ UTILE
Enciclopedia
di routine
a cura di Alessandro de Simone
Come realizzare l’enciclopedia ed utilizzarla nei propri listati
Ai lettoli che hanno acquistato per la prima
volta questo numero di Commodore Compu-
ter Club, if lustriamo qui di seguilo, i vanteggi
che derivano da ila raccolta.
Questa, a pensarci bene, è la versione
"superiore ' della rubrica "1 riga 1 ' e potrebbe
anche denominarsi... "una schermata"!
Oltre che utili per costituire un'enciclope-
dia, i brevissimi sotto programmi pubblicali su
ogni numero, sono anche validissimi stru-
menti di sludto per coloro che desiderano
approfondire Se proprie conoscenze del ha-
sic, esaminando, senza fatica, particolari
routine o insolite tecniche di programmazio-
ne
* Dato che può esser "chiamata" piò di una
volta nel corso di un programma,, nessuna
routine contiene istruzioni del tipo DATA op-
pure DiM, alto scopo di non creare contusio-
ne col listato principale
9 Nessuna routine può far riferimento ad al-
tre routine dell enciclopedia stessa,
* Nessuna rouline può contenere variabili
banali (A. A5. eccetera), ma solo variabili po-
co usate (XI S, Xfl. Y0%, eccetera).
* Ogni routine deve apparire, par intero, sul-
lo schermo del computer e consentire, pro-
prio per questo motivo, di essere esaminata
comodamente.
» Ogni routine deve esser numerata secon-
do uno standard che ha la paritoolarità di
esser ricordato facilmente
Rìghé Contenute
XXV 00 Prima rìg a dd sottoprogramma
XXY89 Ultima riga utile del sottoprogramma
XXY90 REM Prima nga di spiegazioni
XXY99 REM' Nome delia subroutine
in cui XX sono due valori variabili da 10 a 63,
Y è un carattere numerico compreso tra 0 e 9.
Qualsiasi subrettine, in altre parole, inizia
con un numero, di cinque caratteri, che termi-
na sempre con "00". La stessa subroutine,
d'altra parte, ha r ultima riga numerata con
99 1 *,
Digrtendo. ad esempio
USI 10600- 10899
si avrà la certezza di veder apparire sullo
schermo, per intoro, la routine il cui nome si
trova nella riga 10899
Prima di accedere alla routine è necessario
assegnare, alle variabili indicate con REM da
riga XXY89 a XXY98. particolari valori per il
suo corretto funzionamento, Ai "ritorno" una
0 più varia brìi conterranno il risultato
de H' elaborazione.
In questo modo, per esser più chiari, è
possibile simulare alcuni comandi di versici r
basic avanzate oppure, addirittura, cresi re
nuove e inedite istruzioni
Ad esempio, il comando;
SOUND 1,000 5G0
che, nel C - 16. riproduce un suono di tonalità
800 tramite la voce 1 per la durata 500, po-
trebbe venir riprodotta, in un'ipotetica su-
broutine per il Commodore 64, con-
X 1 = 1 ;X2=800:X3-500:GOSUB12400
nell'ipotesi, ovviamente, che fa routine in og-
getto sia allocata da riga 12400 a t24§9
l listati pubblicati "girano" su ogni compu-
ter salvo dove indicato diversamente.
E ovvio che nel caso del VIC-20, (che.
come è noto, ha uno schermo di soli 506
caratteri), le subroutine "universali" funzio-
nano correttamente, ma non possono appari-
re per intero in una sola schermata
Per quanto riguarda la digitazione, ss tenga
presente che sulla rivista, per motivi di chia-
rezza, I comandi e le istruzioni basse sono
separati tra loro da spazi bianchi Nel digitare
te linee di programma, pertanto, è opportuno
ignorarli, per non si rischia di non restare in
una soia schermata. Se, per esempio, legge-
te:
12100X1=34: X2 = 5QR(X3) + LOG(Xl 1
digitate nel modo seguente
1 2 1 00 X 1 =34:X2=SQR(X3) +LOG{X 1 )
senza, cioè, alcuna separazione tra comandi
ed istruzioni
Commodoro Computer Club - 75
LUTILE
1 1400 Istogrammi
(Per qualsiasi Commodore)
Una routine decisamente povera" che consente, tutta-
via, di visualizzare con la massima semplicità, sullo scher-
mo, otto dati sotto forma di istogrammi orizzontali.
Si è fatto ricorso ai caratteri sem ig rafia Commodore e, in
particolare, agli otto caratteri che consento no di stampare, in
una singola celta video, da una a otto barrette verticali conti-
gue. in questo modo, infatti, è possibile visualizzare anche
porzioni di cursore con l'accuratezza di un ottavo.
Provate a far girare il sem pi ice demo allegato, Alle doman-
de sui valori da introdurre rispondete, ad esemplo, con 10,
10.5, 11. 11.5. 12, 12.5 e zero f0> alle rimanenti. Alle doman-
de relative ai nomi nspondete PRIMO, SECONDO TER-
ZO... oppure come prù vi aggrada.
Vedrete apparire, dopo la digitazione dell'ultimo dato, sei
istogrammi orizzontali sormontati dal nome e dal valore digi-
tato corrispondente. All'estremità destra di ciascuna barra
compare un numero, compreso tra 1 e 8, che ha il compito di
evidenziare il carattere semigrafico presente alia stessa
estremità.
La ricerca del valore massimo è automatica per cui, in ogni
schermata, vi sarà sempre una barra che occuperà l'intera
larghezza di schermo Questo accorgimento è stato adottato
per sfruttare al massimo fe potenzialità di visualizzazione del
video.
Non e possibile digitare valori negativi (vengono subito
trasformati in positivi] come pure almeno uno dei dati deve
essere non nullo. In caso contrario, come di consueto, la
routine non viene eseguita e la variabile X0£ conterrà il
messaggio “ERFT
A. de Simone
Collaborazione
dei fettoni
La collaborazione dei lettori è gradita purché si provveda
ad inviare almeno tre sottoprogrammi per volta, su nastro,
disco oppure output di stampante. I listati di routine che non
rispettano lo standard adottato rischiano di non esser presi in
considerazione.
Tutti i lavori pubblicati verranno compensati con prodotti
della Systems Editoriale (cassette di programmi, liba, abbo-
namenti. copie arretrate, eccetera).
30
REM
ESEMPIO D’USO
BE
REM
ISTOGRAMMI
34
REM
QUALSIASI COMPUTER
«
9G
REM
(PER UIOE0 CAMBIARE 39
IN E 1 }
37 ;
100 POR 1*1 TD B: INPUT "UALORE " ;
XI CI)
110 INPUT "NOME " ; X1SC I ) ; NEXT : GDS
UB 11400: PRINTCHRSC 147)
HE IF XBS«»ERR" THEN PRFNT”ERRO
RE NEI DATI IMMESSI "
115 GOTO 100
130 :
11100 X0$*= ” ” : XI (0)-0 : XI C 10) -0: FDR
Xl«l io B: XK I)-A8SCX1CX1 ) ) :
NEXT: FOR Xl”l TD 3
11105 FOR Xl-1 TD B: X1SCXD-LEFTSC
X1$CX1)+” ”, 1£):N
EXT : X1$""12315B7B30”
11410 FDR Xl-1 TD B : I F X1CX1XX1C0
) THEN X1C0)-X1CX1)
11411 NEXT : FDR Xl-1 TD B: IF XlCXl)
>X1C10) THEN X1(10)“X1CX1)
11415 IF XlC10)-0 THEN X0$-”£RR’’ : R
ETURN
1 1420 NEXT: PRINTCHRSC 147 ) ; :Xl-33/X
1(10): FOR X£-l TD B:PRINTXEi
XISCXBJXICXB)
11430 FOR X3-1 TD XI ( XB)*X1 : PR INTC
HR$C1B)CHR$<3£) ; :NEXTX3:X4=X
1 ( XE ) *X1
11440 IF CX4-INTCX4) )»10>-1 THEN P
R1NTCHRSC146)MID$CX1$ , CX4-IN
T(X4) )*10, 1) ;
11445 IF XI C X£ ) -0 THEN PRINTCHRSC1
57)CHR$C 146) ;
11450 PRINT: PRINT: NEXTXB
11460 GET XBS: IF XSS-"" THEN 11460
11470 RETURN
1149S REM X1C1) . . . .X1C3) DATI
11493 EEN X1$C 1 ) . . . . X1SC9) NONI
11439 REM ISTOGRAMMI
76 - Commodore Computer Ctub
U UTILE
1 1500 Caratteri in alta risoluzione
(Sofo per C-64)
Questa routine, utilizzata cor le Routine Grafiche pubbli-
cate sui N. 14 di C.C.C, permette di visualizzare sulla pagina
in aita risoluzione qualsiasi frase o messaggio,
Prima di eseguire il GGSU8 1 1500, è sufficiente assegna-
100 REM ESEHPIO D * USO
110 REM CARATTERI IN H , RES .
120 REM SOLO PER C G4
130 REM INSERIRE LE ROUTINE
1 35 REM GRAFICHE DI C . C . C ■ N.14
140 :
150 -GRAF1£,0: -COLORI: -CLEAR
150 +-C I RCLE0 ,0,0,100,100
170 X5-3; X5-E0: X15- "COMMODORE COMPUTER CLUB”
180 GOSUOl 1500 : I FX0S- ,p ERR n THENFR I NTX0E : END
190 STOP
200 ;
11500 X0$“ ,,,p : IFX1S-” "0RX6< 0ORXB> 24QRX5<0ORX5> 39IHENX0S- ”ERR RETURN
11503 IFXE*40+X5+LENCX1SJ> I000THENX0E- "ERR ” : RETURN
11505 F0KE56334, PEEKt 55334 DAND2S4: P0KE1 , PEEKC 13 AND251
11510 X0“S7344+X5*B+XG*320;X1-LENCX1S}
11520 F0RX2-1T0X1 : X5S«MX DSCX15 , X£ t 1 >
11525 X3-ASC C X2$ ) : I FX3> 53THENX3-X3-64
11530 FORX4-0TO7: POKEC X4+X0 } , PEÉKC 5354B+X4+X3*B NEXT : X0“X0+S; NEXT
11550 P0KE1 , PEEKC 1 DQR4 : F0KE5S334 , PEEK( 55334 3 ORI : RETURN
ì 1590 REM X13B- FRASE DA UI SUA LI ZZARE IN HI -RES
11591 RE M X5-NUMERD RIGA * X5~NUMER0 COLONNA
11539 REM CARATTERI IN HI-RE5
re la frase alla variabile stringa X1S, indicare la riga (X6) e la
colonna (X5) in cui si desidera posizionare fa scrìtta,
La variabile - errore X0$ sarà nulla se tutto è in ordine,
altrimenti conterrà "ERFV. Questo casosi verifica quando la
variabile X1$ è nulla e quando il messaggio da visualizzare
non può esser contenuto nei limiti dello schermo.
G. Castagna
1 1600 Scomposizione in sillabe
(Per qual siasi Commodore)
Un listalo già proposto su pubblicazioni SYSTEMS, Modi-
ficato e compattato diventa un'utilissima routine, 'Scompo-
sizione in sillabe' ' rappresenta, anche da solo, un min [pro-
gramma utilizzabile a tini didattici.
Alla domanda:
VOCABOLO?
potete rispondere sia con una singola parola che con un'in-
tera frase (Y$), lasciando spazi vuoti tra un vocabolo e l'altro.
Le sillabe (non più dii 1 ) vengono individuate e assegnate afl
vettore Y$.
Variabili utilizzate: XI, YS, XO. X0(). YS(), X$
Nel caso vi siano più di undici sillabe, caso rarissimo, sono
ignorate quelle in più.
(F> Molinari)
100 REM ESEMPIO D'USO
110 REM SCOMPOSIZIONE IN 5ILLAB
E
115 REM PER QUALSIASI COMPUTER
120 :
130 INPUT "U0CAB0L0 ,r ; YS
140 GD5UE3 11600: FQR 1-0 IO 10: IF
YSCI)- ,,W THEN 1-10
*
145 PR INI "SILLABA”! ;CHR$C 10DYSC I
): NEXT: GOTO 130
150 :
9999 END
«
11600 XI -0 : FOR X3-0 TO 10 ; Y$C X3 ) - "
”:NEXT; X3-0
11605 XI “Xl + 1 : I F X1>LEN{ YSO OR X9>
10 THEN RETURN
Commodore Computer Club - 77
L’ UTILE
11610 FOR X0=0 TO 2:XSCXC)-niD$CYS
,X1+X0, 1):XS-X$CX0)
11615 XCX0J=X$=”I " OR X$=”U” OR X$
-"O” OR XS-’’A M DR X$“”E”:NEX
T:IF XC0)=0 THEN 11675
11665 IF X<1)“0 THEN 11655
11635 IF XSC0)“” I *' DR X$(0) = ’’U” IH
EN 11675
11640 GOTO 11680
11650 X3=CXC6)”0)+S:ON X3G0T0 1007
5,11600
11655 IF XC2>— 1 THEN 11680
11660 IF X$Cl)-XS<ei THEN 11570
11665 IF X$C13="S” OR X$C17“"G” OR
XSC2>«*’R” OR XS C 2 ) = " L ” OR X
SC21-"H" THEN 116B0
11670 Y$CX9)-Y$CXS1+XSC01 + XS( 1 1 : XI
-Xl+1 : X9-X9+1 :GOTO 11605
11675 Y$CX51-YS(X35+X$t0ì : GOTO 116
05
116B0 YS<X5)-Y$CX53+X$C01 : X3-X3+1 :
GOTO 11605
11630 REM XSO, YSC) X$,X0,X1,X3,
X3
1 1633 REM SCOMPOSIZIONE IN SILLAB
E
1 1700 Microcalcolatrice
100 REM ESEMPIO D'USO
110 REM MI CROC ALCOL ATRI CE
150 REM QUALSIASI COMPUTER
130 :
140 GOSUB 11700
150 :
3393 END
\
117 m FRI NTCHRSC 147 ) : FR INI ” 1 ADDIZ
IONE” : PRINT"2 SOTTRAZIONE” ; P
RI NT ”3 DIUI5I0NE”
1 1705 PR.I NT ”4 MOLTIPLICAZIONE” :PRI
NT ”5 RADICE”: PRINT”G QUADRAT
P M :• FRI NT** 7 FINE”
11710 PRINT:PRINTX3 I, RI5LJLTAT0; ”X3;
PRI NT; INPUT ” QUALE n ; X3: IF X3
<1 DR X9> 7 THEN RETURN
11712 IF X5“7 THEN RETURN
11713 IF X9>4 THEN INPUT "UAL"; XI;
GOTO 11755
11715 INPUT "PRIMO CALORE " ; XI
11720 INPUT "5EC0N , CALORE '* ; X2
11730 IF X9-1 THEN X3-X1+X2 : GOTO 1
1700
11735 IF X3-2 THEN X3~X1 -X2 : GOTO 1
1700
11740 IF X9“3 THEN IF X2-0 THEN 11
775
1 174:5 IF X5-3 THEN X3*X1 /X2 : GOTO 1
1700
{Per qualsiasi Commodore)
Consente, interrompendo momentaneamente I 1 esecuzio-
ne de! programma principale, di effettuare sempiici calcoli
matematici: somme, differenze, mot iphcaz ioni, divisioni,
quadrati, radici.
E* talmente semplice che non c’è bisogno di commenti.
Quando compare il menu, scegliete l'operazione che volete
effettuare premendo il tasto corrispondente e Return. Bat-
tendo in INPUT ì numeri (oppure if numero, se trattasi di
quadrato o estrazione di radice), avrete if risultato preceduto
dal simbolo corrispondente all 'operazione effettuata. Ne! ca-
so venga richiesta un'operazione impossibile (divisione per
zero, radice di un numero negativo) compare un opportuno
messaggio
Banale o utilissima 9 Fate voi.
Se proprio avete voglia di divertirvi, ricavatene un piccolo
programma e proseguite nella lista delle operazioni radici
cubiche, fogantmi, seni, tangenti, fattoriali... e chi più ne ha
più ne metta’
F. Mclinari
11750 IF X9*4 THEN X3-X1*X2 : BOTO 1
1700
11755 IF XS-5 THEN IF X1<0 THEN 11
775
11760 IF X9=5 THEN X3-5QR C XI ) : GOTO
1170©
11765 IF X9-6 THEN X3-X1*X1 ; GOTO 1
1700
11775 FRI NT "OPERAZIONE IMPOSSIBILE
” ; FOR XX-1 TD 1500 : NEXT : GOTO
11700
11780 REM UARI ABILI : X9 T X1,X2
11799 REM NOME: MI CROC ALCOL AIR I CE
1 1600 Registra zona di memoria
(Solo per C-64)
A volte può sorgere la necessità di salvare una certa area
di memoria (generalmente RAM) del calcolatore, sia che
essa contenga semplici dati, oppure un programma rn lm-
78 - Commodore Computer Club
L’ UTILE
gu aggio macchina. Sarebbe veramente uno schedo effet-
tuare l'operazione di salvataggio se ìf C-64 disponesse del-
I istruzione BGAVE, comune in altre versioni basic.
Purtroppo non è cosi, e bisogna arrangiarsi in qualche
maniera. Vi proponiamo perciò una routine che fa uso dei
sottoprogrammi LM Kernal per la gestione dei file Le su-
brouttnes usate sono
SYS 65466: SETLFS, assegna i numeri logici del file e delia
periferica in uso (1 per registratore, 6 per drive).
SYS 65469: SETNAM, prepara i puntatori al nome dei file,
SYS 65496: SAVE, operazione di salvataggio vera e propria.
Una trattazione più ampia dell 'argomento, la potete trova-
re sul numero 20 di C.C C neirapposito articolo dedicato,
appunto, alle routine del Kernal.
Non è comunque necessario capire come funzionano le
rouline in Linguaggio Macchina (L M) per utilizzare il como-
do softoprogramma proposto. E solo necessari o indicare i
dati che il computer deve conoscere per effettuare il salva-
taggio corretto:
Alla domanda
NOME DEL FILE ?
è sempre consigliabile dare un qualsiasi nome se usate il
lettore a cassette
Per il disco invece è obbligatorio: se per distrazione invia-
te una stringa nulla, il programma non fa alcun salvataggio e
ritorna con un messaggio d'errore.
Aitre domande vengono poste:
INDIRIZZO INIZIALE?
INDIRIZZO FINALE?
Si riferiscono alle locazioni di memoria di inizio e di fine del
file. L Indirizzo finale deve essere maggiore di quello mszale.
Un apposito controllo elimina, ad ogni buon conto, la even-
tualità di un simile errore, altri me ni i il computer andrebbe m
confusione.
Alla domanda:
NASTRO 0 DISCO 7 (N/D)
premete il tasto corrispondente alla periferica di cut
disponete.
* Come gira il demo. Nel demo dr esempio {righe 100-
250) sono stati assegnati, ad X3 e X4, gli indirizzi di inizio e
fine della memoria video In questo modo farete una copia
esatta di tutto CIÒ eh e compare sullo schermo ai momento del
salvataggio.
Per effettuare una prova di funzionamento eseguite nel-
l'ordine le seguenti operazioni tenendo conto che (R) signifi-
ca battere il tasto Return:
* Battete RUN (R)
* Quando compare il messaggio “Scrivi ciò che vuoi e. in
seguito, digita RUN150T pasticciate con scritte vane lo
schermo (anche con eventuali SYNTAX ERRORj Servirà
per verificare che !a schermata viene effettivamente registra-
rne, inseguito, caricata.
• Battete, quindi, RUN 150
• Quando compare 'Nome del fife’ digitate il nome che più
vi aggrada e premete Return Indicate in seguito, premendo
"D" oppre 'N \ la periferica scelta. Seguite (se lavorate col
nastro) i vari ordini impartiti dal C-64
• Alla fine lo schermo viene cancellato e compare il messag-
gio ' Vuoi caricare una schermata? 11 al quale dovete rispon-
dere 1 S‘\ Indicate il nome del File e premete Return A
questo punto i! file viene caricato e visualizzato su schermo.
• Comparirà in re verse il messaggio ,l Per continuare premi
un tasto'' che eseguirete. La successiva visualizzazione del
vettore Art) dimostrerà che eventuali variabili definite prima
del caricamento non sono state alterate.
Quando, infatti, viene caricato, da programma, un altro
fi le -program ma. è come se, al termine deli operazione, ve-
nisse dato un GOTO alla prima riga del nuovo programma
basic appena caricato. Poiché, nel nostro caso, il program-
ma da caricare viene ietto con la sintassi ", 1”, il programma
basic "ufficiale" è ancora quello di prima, Fortunatamente,
se l'ordine di caricare un programma viene dato sotto pro-
gramma, le variabili precedentemente dichiarate non vengo-
no cancellate. Ecco dunque la possibilità di utilizzare una
variabile numerica (nei nostro caso HH) col significato dr
FLAG (tdevfatore) Che faccia capire se il programma princi-
pale {il nostro DEMO) gira per fa prima volta oppure no,
E' ovvio che. se si desidera memorizzare altre zone di
memoria, nelle righe 160 e 170, al posto dell istruzione
PR1NT è necessario assegnare il comando:
160 INPUT ‘DALLA LOCAZIONE ";X3
170 INPUT' ALLA LOCAZIONE ';X4
Per richiamare sn memoria un file registrato in grecai e nza.
battete semplicemente:
LOAD l ‘NOMEFILE".8,1 per il disco
LOAD' NOMEFILE/M.I per la cassetta.
F. Molina ri
100 REM ESEMPIO D'USO
110 REM SALUA PORZIONE DI MEMOR
IR
130 REM SOLO PER C64
131 :
135 FRINTCHRSC 10) "PER CONTINUARE
PREMI UN TASTO 11
136 GET A$:IF THEN 136
13B IF HH THEN £35
145 FRINT"5CRIUI CI0> CHE UUUI E
, IN SEGUITO, DIGITA: RUN 15
0'* : END
150 FOR 1-1 TO 10 ; AC I >~I : NEXT
155 INPUT "NOME DEL F ILE ” ; Xl!E
Commodore- Computer Club - 79
LUTILE
160 PRINT"! NDIRI220 INIZIALE 102
4”:X3-1004
170 FRINÌ” INDIRIZZO FINALE 2053”
:X4-B023
100 PRINT”NA5TR0 0 DISCO: CN/D) 11
190 GET X05 : I F X9£<>"N" AND X35<
THEN 190
000 GOSUB 11000
010 IF X0S=”ERR" THEN PRINT"ERRO
RE"
000 FRI NTCHR3K 1471 "UUO I CARICARE
UNA SCHERMATA? C5/N)”
005 GEI A$ : I F AS-"" THEN 005
030 IF Aì- ”5" THEN INPUT ''NUME 0
EL FILE”; Xl$: HH=1 : LOAD Xia^B
, 1
035 PRINTCHRSC 147) "ECCO IL PROSE
GUI MENTO DEL PROGRAMMA"
040 FDR 1-1 TO 10: FRINTAC I ) ; NEXT
050 :
9999 END
11800 X0$-”":IF X3>-X4 OR CX1S~"”
AND X9$“"CT) THEN X0$-"ERR":
RETURN
11800 X 1 “ 1 : I F X9S-”D" THEN
$-”0: J, + X1$: CLOSE 15: OPEN 15,
8,15, ”X3 : CLOSE 15
11B0S X0£=-X1£: XB-PEEKt53)+856*PEEK
C54 ) -LÈNt XB3») : POKE 7B0,X0/05
e
11810 POKE 781 , X0"FEEKC7BB)*056: PO
KE 780.LENCX05) : SY555489 : POK
E 700 ( 1 : POKE 7B1 f Xl
11015 POKE 7B0 „ 1 : SYS65456 : POKE 054
, X3/056 : POKE 053, X3-PEEKCE54
) *056 : POKE 700 t 053
1 1800 POKE 7B0 , X4/B56 : POKE 781,X4-
PEEKC7B0 )*0S6 : SYS65436
11805 IF CPEEKC7Q3) AND 1) OR (ST
AND 191) THEN 11B35
11030 RETURN ■
11035 X0$"ERR Jt : I F Xl-1 THEN RETURN
11040 CLOSE 15 : OPEN 15 , B , 15 : I NPUT#
15*X3$ t X45: PRINTX3S; X4SS : CL05
E 15: RETURN
11045 REM UAR1 AB ILI: Xl^XS.XH^XS
£ , X0£, XI fl X0, X3$ T X4£
11050 REM X15; NOME FILE
11855 REM X3,X4: INDIRIZZI I N I Z E
FIN
11B89 REM SAUE PORZIONI DI MEMORI
A
80 - Commodore ? Computer Club
1 1900 Scambia pagine video
(Soia per C64)
Come il nome fascia intuire, questa routine permette di
gestire contemporaneamente due pagine di testo. Spieghia-
mo subito come utilizzarla.
La variabile XI è l 'unico parametro che if programma deve
conoscere, e può assumere due valori:
Xt =0 memorizza l'attuale pagina presente sul video cancel-
lando irrimediabilmente l’altra.
XI =1 scambia fra di loro le due schermate, visualizzando
quella memorizzata in precedenza.
A cosa può servire avere a disposizione due' pagine di
schermo?. Ad esempio nella presentazione di una maschera
video, Una volta memorizzata, non bisogna più attendere
che il computer la disegni tutte le volte che ne abbiamo
bisogno. Una riga del tipo:
1000X1 = 1 GOSUB 119GQ
renderà l’operazione praticamente istantanea. Questo gra-
zie ad una routine che. manco adirlo, è in linguaggio macchi-
na (L.M.), e lavora su due buffer (“memoria temporanea),
anzi tre, considerando anche lo schermo, di 1Kbyte ciascu-
no Il primo è destinato alla memorizzazione: if secondo è
utilizzato durante gli scambi come memoria temporanea di
transito.
I due buffer (2048 byte in tutto), sono allocati nefia RAM
posta sotto la ROM del sistema operativo. Traduco, nella
sostanza, il bisticcio di parole: in pratica non viene occupata
memoria e non vi è alcun intralcio per i programmi basic,
Diamo un'occhiata alle POKE, abbastanza numerose,
presenti nella routine
POKE 679 r 4 numero di blocchi Ogni pagina è composta
infatti da 4*256=1024 byte. Sarebero sufficienti 1000 byte
ma è più semplice realizzare un programma L.M. che ne
memorizzi 1024,
POKE 251,0: POKE 252,4 byte basso e alto indirizzo
sorgente.
POKE 253,0: POKE 254,160 byte basso e alto destinazione
(le altre righe sono sìmili: cambiano soio gli indirizzi).
Le locazioni 251 .252.253 e 254 sono dei puntatori in pagi-
na zero che ci permettono di utilizzare (attenzione, si chiama
proprio così): (Indirizzamento indicizzato indiretto
Altra cacofonia, anche peggiore della precedente!
Questa tecnica (stiamo parlando di programmazione in
L, M.), ci permette di trasferire porzioni di memoria in maniera
molto efficente e compatta. Al solito, chi ne volesse sapere di
L’UTILE
più. consiglio la lettura begli articoli e rubriche che C C.C
regolarmente dedica aìl'argomenta In particolare il n. 19.
dove viene dato ampio spazio proprio ai lipidi indirizzamento
del processore 6502.
F. Molina»
100 REM ESEMPIO Q’USO
110 REM MEMORIZZA E ALTERNA
120 RE ri e PAGINE SCHERNO
130 REN SOLO PER C64
140 :
150 PRI NTCHRSt. 147 ) CHRSC 18 ) " PREN I
UN TASTO”
1G5 POKE 1054 + RNOC0)*1000, 1 : REN
CREA PAGINA 1 CASUALMENTE
170 GET XXSMIF XXS-"" THEN IBS
190 PRINTCHRSC 13 )CHR$C IBI “PAGINA
N.l Xl-0tGOSUB 11900
130 FRI NTCHR® C1471CHRSC101 "PREN I
UN TASTO"
205 PDKE 1054+ RNO C0 } *1000 , E : REN
CREA PAGINA 5 CASUALNENTE
610 GET XXS : I F XX$“"” THEN £05
660 PR I NTCHRSC 19 3CHRSC 181 "PAGINA
N.e ”
230 X 1 “1 : GOSUB 1 1 900 : FOR 1-1 TO
1000: NEXT: GOTO 630
640 :
9399 END
11300 X3S-” 15016500104155413300116
0000174167006177651145553”
11305 X3S-X9S+ ”5005395435305555305
5430660B646090165001009001 13
3001036”
11310 X7-0:X0-0
11315 FOR X0-1 TO LENCXSS3 STEP 3;
X3-UALCniD$CX9$, X0,3) )
11950 POKE B80+XB,X9:Xa-XB+l : X7=X7
+ X3 : NEXT
11955 IF X704B13 THEN PRINT”ERR X
9S ” : END
11930 IF Xl-1 THEN 11345
11335 POKE 679 , 4 : POKE 551,0:POKE 5
56, 4: POKE 653,0: POKE 554,160
: SY56B0: RETURN
11345 POKE 673,4: POKE 551,0: POKE 5
55 , 4 : POKE 553 , 0 : POKE 554,164
: SYS6B0
11350 POKE 679, 4: POKE 551,0: POKE 5
55, 160: POKE 553,0: POKE 554,4
: SYS680
1 1555
11991
11935
11993
11939
POKE B79 , 4 : POKE 551,0:FOKE 6
55, 154: POKE 553,0: PDKE 554,1
60 : SY5 BB0; RETURN
REM UARIABILI: X3S,X7,XB,X3
, XI
REN X1=0 MEMORIZZA PAGINA
REN Xl-1 ALTERNA PAGINA
REM CSAMBIA PAGINE SCHERMO
1 2000 Koala- video
(Solo per C-64)
11 K o ala Pa inter. con tavoletta grafica o meno, è certamen-
te uno dei più usati e conosciuti programmi per disegnare in
alta risoluzione.
Con un po r di fantasia (e sopratutto pazienza), si possono
creare disegni multicolori veramente beili, e salvarli o cari-
carli da dischetto. Qualcuno però si sarà chiesto: “Beilo, ma
cosa mene faccio se non posso utilizzarli all'interno dei miei
programmi, dato che per caricarli devo avere in memoria il
Koala?”
Risposta: copiate questa routine e finalmente i vostri capo-
lavori saranno fi pronti per l'uso: Scenario di un gioco, un
variopinto menù eccetera.
11 programma contiene una breve routine in linguaggio
macchina, necessaria per spostare fa pagina video e fa
memoria colore nelle giuste posizioni (operazione che in
basic richiederebbe troppo tempo):
24576 inizio pagina grafica (0Kbyte)
23552: inizio video (1Kbyte)
55296: inizio memoria colore (IKbyle)
infine, con istruzioni POKE e PEEK, viene visualizzata la
pagina grafica che, per il Koala, è del tipo multicolore.
Un h awerienza: nella variabile Xi$ dovete memorizzare il
nome esatto del file registrato, compreso il sìmbolo grafico
CHfì$(129) all'inizio delta stringa (ottenibile anche con fa
pressione dei tasti CBM e 1) e gli spazi vuoti; pena la com-
parsa del messaggio FILE NQT FOUND Ma queste ultime
informazioni dovrebbero esser superflue per chi possiede il
Koala. F, Molinari
im
REM
ESEMPIO O'LISO
105
REM
SOLO PER C-64
110
REM
CARICARE UN
115
REM
DISEGNO ESEGUITO
120
REM
CON IL KOALA PAINTER
185 :
130 IF XX THEN 137
131 FRI NTCHRSC1H7} " INSERISCI IL
DISCO CON UN DISEGNO KOALA E
PREMI UN TASTO 11
1 32 GET A$:IF " " THEN 13E
Commodore Compose t Club ■ 8 1
L’ UTILE
134 X1S-CHRSC leai + 'TIC*" : FRI NT "Pi 12005
TTENDERE
135 IF XX"0 THEN XX-1:L0AD X1S.0 12010
,1
137 PRINT"Onpa AUER 0S5ERUAT0 IL 12015
DISEGNO"
140 PRINT’TER RITORNARE IN HODO 12030
TESTO PREMERE IL TASTO < RETU
RN> ”
150 PR INT " PREMI I UN TASTO " 12025
1S0 GET XXS6 : I F XXS»"" THEN 1B0
170 GOSUB 12000
100 GET XX S : I F XXSOCHREC 133 THE 12030
N 100 1203S
1S0 POKE 56576, 151 : POKE 53272,21 12040
200 POKE 53270, PEEKC 532701 AND 2 12045
39 12050
210 POKE 53265, PEEKC532653 AND 2 12055
23 12056
£15 PRINTCHRSC1473
220 : 12060
3 9 SS END
12000 X3$"” 160000 174 167002 177251 14 12065
5253200209249230252230254202
209242036” 12039
12002 X7-0:X0~0
POR X0=1 TO LENCX3S) STEP 3:
X9=UALCMI0$<X9$, X0.3) )
POKE 6B0+X0, X9: XB=X8+1 : X7=X7
+X9: NEXT
IF X7O3700 THEN PRINT“ERROR
E” : END
POKE 673,4: POKE 251,64:POK
E 252, 127: POKE 253,0:POKE
254, 32: SYS 600
POKE 673,4: POKE 251,40:POK
E 252 ,131: POKE 253,0: POKE
£54, 216: SYS 600
POKE 56576,150
POKE 53272,126
POKE 53270, PEEKC53270) OR 16
POKE 53265 , FEEKC 532651 OR 32
RETURN
■
REM VARIABILI : X3$ , X7 , XS , X0
, X3
REM U1SUALIZZA LA PAGINA GR
AFICA
REM DISEGNATA CON IL KOALAP
AlNTER
REM NOME: KOALAPR INTER C5U
UIDED1
Elenco delle routine pubblicate
Qui di seguito viene riportato l'indice di tutte le routine finora pubblicate
(fra parentesi il numero di Commodore Computer Club su cui si possono trovare).
K GALA- VIDEO (27)
SCAMBIA PAGINE VIDEO (27)
REGISTRA ZONA DI MEMORIA (27)
MI CROC ALCOL ATRI CE (27>
SCOMPOSIZIONE IN SILLABE (27)
CARATTERI IN HI-RES (27)
ISTOGRAMMI (27)
ESAME DIRECTORY (26)
FUNZ. INV. IPERBOLICHE (26)
FUNZ.INV. TRIGONQM. (26)
FUNZIONI INVERSE (26)
FUNZIONI IPERBOLICHE (26)
CONVERSIONE DEC-ESA (26)
CONTROLLO DATA (25)
IMPULSI SONORI (25)
REVERSE SCHERMO (25)
INPUT CONTROLLATO (25)
INCOLONNAMENTO VIRGOLA (25)
N. BLQCKS FREE (DISCO) (24)
INPUT & CONTR/DEFAULT (24)
ESTRAZ. PAROLA DA FRASE (24)
CAMBIA COL. BORDO/FONDO (24)
CORNICE POLICROMA (24)
82 - Commodore Computer Club
Software Club
Le riviste su cassetta delta Systems Edito nate si fondono per prepararsi ad u n ' ìm portante sforzo di diffusione internazionale del
nostro software ,
Sino ad ora abbiamo offerto ai nostri aie riti due diverse testate su supporto magnetico: Commodore Club e 16/48 .
La prima era evidentemente destinata agii utenti Commodore , mentre la seconda era diretta a tutti coloro che possedessero un
compule r Sinckt ir .
La nuova rivista su cassetta, denominata ' Software Club" f è destinala anche alle persone che possiedono un calcolatore MSX.
Questa nuova testata sarà la prima ad uscire contemporaneamente nei più importanti paesi europei.
Poiché ie tre marche, Commodore, Sinclair e MSX , rapprese nta no complessivamente ki porzione più importante del mercato
europeo degli Home computer, abbiamo ritenuto opportuno fornire un'unico prodotto che fosse in grado di accontentare
contemporaneamente le tre diverse fasce di utente
Commodore Club consegna idealmente il testimone a questa nuova pubblicazione su supporto magnetico, netta speranza di
fornire un prodotto sempre più adeguato alle esigenze di ogni singolo utente.
Questa nuova veste editoriale servirà ad esaltare ulteriormente t la qualità dei software che vi proporremo nel corso dei vari mesi .
Ringraziandovi anticipatamente dell* interesse di cui sarà oggetto auesta nuova rivista su cassetta t vi rimandiamo al primo
appuntamento in edìcola con questa pubblicazione .
La redazione di Software Club
FINAJ MENTE
SOFTWARE CLUB
Nel primo numero di Software Club ogni
utente di un modello Commodore (C.64,
C.2Q e C.ltì) potrà trovare degli argomenti di
suo interesse.
Pét quanto concerne il 64, vi proponiamo
una nuova spettacolare Avventure di stile ti-
picamente orientale.
Le qualità richieste per eccellere in questo
gioco sono:
intuito, senso de 11 1 orientamento e capacità di
interpretazione delle immagini.
Parecchie delle persone che hanno acqui'
stato un Commodore 64, sono particolarmen-
te interessate alle sue applicazioni nel campo
della grafica.
Già nel passato la rivista su carta Commo-
dore Computer Club si è occupata di questo
problema, fornendo un tool di istruzioni
grafiche.
La versione che vi proponiamo è molto piu
interessante rispetto a quella p recedente men-
te offerta, poiché contempla al suo interno
parecchi nuovi comandi che prima manca-
vano.
A ne he sul Gommmodorc 64 ù possibile rea-
lizzare un sequenza filmica attraverso un at-
tento lavoro di programmazione.
Se siete curiosi di osservarla non mancate a
questo primo appuntamento.
Naturalmente anche gii appassionati di vi-
deo game rimarranno soddisfatti dallo spazio
dedicato ai giochi di azione.
Dopo esserci occupati dei pia importanti
personaggi della narrativa infantile, conclu-
diamo questo ciclo con Cappuccetto Rosso.
E' un elettrizzante gioco di azione, intera-
mente realizzato in linguaggio macchina, che
richiede prontezza e abilità nel manovrare il
joystick „
Questi sono solo alcuni dei temi pia interes-
santi di questa pubblicazione, che racchiude
co m plessi va mente ben 21 programmi,
Rammentiamo a tutti coloro che possiedo-
no un computer Commodore 16 che abbiamo
realizzato per loro un potente programma di
archivio dati: Data-base
Ora analizzeremo gli argomenti che verran-
no trattati nei numeri speciali della nostra
pubblicazione su cassetta Software Club.
Dynastopoli
Questo numero speciale della cassetta è de-
dicato agli utenti dei computer C64, G20,
€.16.
fer quanto con cemt il C.64 potrete trovare
degli interessanti giochi di simulazione (Dy-
nastopoli, gioco che da il nome alla cassetta),
d’azione (castelli, bigio, uomini volanti) e
programmi di utilità.
Questa interessante cassetta che non dovrà
assolutamente sfuggirvi.
■Gestione domestica
Nel numero passato di questa rivista, ab-
biamo descritto particolareggiatamente i pro-
grammi destinati alla gestione domestica.
Questo speciale vi consentirà di gestire, in
maniera accurata, tutti i più diversi aspetti
della vostra vita familiare (bilancio, dieta,
scheda medica).
Velocissimo Basic
Chi si avvicina per la prima volta al mondo
dei computer, può incontrare delle difficoltà
nella comprensione del linguaggio che oceor
re utilizzare per dialogare con queste
macchine.
Questo corso, articolato in 4 cassette e de-
stinato agli utenti dei computer Commodore
64, Spcctrum ed MSX, vi guiderà passo per
passo all' aq udizione di questo nuova lingua:
il Basic.
Una delle novità più importanti di questa
iniziativa consiste nei fatto che non necessità
di alcun supporto di manualistica.
Anche coloro che abbiano già confidenza
con questo linguaggio, potranno trovare degli
interessanti spunti di approfondimento a II 'in-
terno di ciascuna lezione.
La nuova voce
Quando l’anno scorso proponemmo ai no-
stri lettori r! programma la voce, che consenti-
va al computer di riprodurre il nostro modo
corrente di dialogare, ottenemmo un notevo-
le gradimento presso tutte le nostre diverse
fasce di utenti.
I I ■ | |
Commodore Computer Club ■ 83
Memori dì questa eperienza* vi offriamo un
nuovo prodotto più avanzato e coerente con
V esigenze dei nostri lettori.
Nello speciale troverete un nuovo comando
basic, voce, che vi consentirà di introdurre dei
commenti parlati a ll intemo dei programmi di
vostra creazione.
Inoltre vi proponiamo la prima ad venture
parlata in italiano, dove j commenti renderan-
no ancora pili avvincente la vostra competi-
zione con il computer.
Non poteva naturalmente mancare un
video-game che utilizzasse il programma di
sintesi vocale ciò accentuerà il mordente delle
diverse fasi di gioco.
In questa cassetta sono contenute anche
delle applicazioni inerenti al tema della
didattica.
Rammenterete senza dubbio il famoso gril-
lo parlante : anche su! vostro Commodore 64
potrete ottenere i medesimi effetti mediante
questo programma.
I ■ I I R I I
I I II RII
Speciale musica
Il Commodore 64 È runico dei computer
appartenenti alla fascia dellhobbismo ad es-
sere in possesso di un generatore sonoro par-
ticolarmente sofisticato: il SID,
Il tema della musica è uno degli argomenti
più cari alla maggior parte degli utenti di que-
sta macchina e abbiamo ritenuto necessario
dedicargli un numero speciale della nostra
pubblicazione.
In questa cassetta sono contemplati dei so-
fisticati programmi che consentono di genera-
re musica con il Commodore 64.
Inoltre vi proponiamo un 'enorme varietà di
brani già composti* che potranno essere sem-
plicemente ascoltati oppure utilizzati, come
motivo ricorrente, all'interno di un vostro
programma.
Gli autori* di alcuni di essi, sono:
Musica moderna
Madonna- Polke -Duran Duran-Band Aid-
Usa for Africo-Sandy Marton-Spandau
BalJet-Tina Tumcr-Style Council-Bmce
Springsteen-King-Jaggere Bowie
Anni 60/76
Beatles-Led Zeppe 3 in -Simon and Garfunkel
Rolltng Stones-Fink Floyd-Genesis
Italiani
Battisti- Pao I i- M i n a -B a g ho n i ■ Da È la- Vasco
Rossi-Pooh-Vanoni-De Andre- Dario Baldan
Bembo
■p
Tutto il lavoro di creazione di questo speciale
è stato coordinato dal famoso cantante e auto-
re Dario Baldan Bembo.
O roscopo 64
Anche un computer può contribuire ad ali-
mentare l 1 atmosfera natalizia.
In questa cassetta, assieme a degli interes-
santi giochi di società* troverete un precisissi-
mo programma che vi fornirà le previsioni
astrali per tutto il prossimo anno.
Buon divertimento.
Speciale utility
Molte volte vi sarà capitato, utilizzando un
Commodore 64. di aver bisogno di un pro-
gramma che vi agevolasse nello svolgere de-
terminate operazioni.
Tramite questa cassetta potrete usufruire di
potenti programmi che renderanno di parec-
chie volte più veloce il caricamento da regi-
stratore o da disco.
Inoltre avrete la possibilità di usufruire di
un editor che vi consentirà di lavorare su 80
colonne durante ogni fase di utilizzo del vo-
stro computer.
Queste sono solo alcune delle utility che vi
proponiamo in questo numero speciale della
nostra pubblicazione, mentre tutte le altre
rappresenteranno una piacevole sorpresa per
ciascuno di voi.
Software Club
Rivista su nastro destinata agli utenti
Commodore* Sinclair, MSX i quali* non
volendo digitare lunghi listati ma preten-
dendo sofwarc di un certo livello, non si
accontentano dei soliti giochi ni (ci sono
però anche quelli.,. )
Applicazioni particolari (come grafi-
ca, musica, word/ processor, data/base*
spreadhseet, mini gestionale e tanti altri )
rappresentano il punto di forza di questa
rivista su cassetta al prezzo imposto
sfiora il ridicolo: L,7000 per le
zioni "normali' * e L, 12000 per 3e
eia li" contenenti, cioè* software di
colare pregio.
IN CLASSE
PROVATI PER VOI
Fare i compiti col C-64
Alessandro de Stmone
Può il tuo computer aiutarti nei lavori
scolastici da svolgere a casa?
I prodotti della Marpesoft
sembrerebbero dire di si....
L a Marpesoft Centro Software Didat-
tico si presenta sul mercato con un grup-
po di prodotti destinati ad applicazioni
scolastiche,
I “volumi” da noi provati si riferiscono
a cassette, da caricare col solito registra-
tore, che trattano diverse discipline; In-
glese, Italiano, Fisica, Matematica, Geo-
grafia, Storia,
La struttura dì ogni programma è sem-
pre ìa stessa: caricato il programma (che
parte automaticamente al termine dell o-
perazione) compare un menu con un cer-
to numero di scelte tra cui, ovviamente,
le istruzioni per un corretto utilizzo del
programma
La metodologia utilizzata è quella del
questionario a scelta multipla, vale a dire
una domanda - esercizio seguita da tre
risposte possibili contraddistinte ciascu-
na da un numero. Premendo uno dei
tasti idonei per indicare la risposta rite-
nuta esatta, compare il messaggio esatto
oppure errato seguito, o meno, dalfindi-
cagione della risposta corretta,
E' infatti possibile, all'Inizio, richiede-
re che la risposta esatta, in caso di errore,
venga evidenziata oppure no, come pure
è possibile “passare” alla successiva do-
manda rinviandola alla fine dell'eser-
cizio,
E' inoltre facoltà dello studente fissare
il tempo massimo di 15 secondi entro cui
assegnare la risposta.
Le domande per ciascuno dei sette
“capitoli" sono 15 e non sempre sempli-
cissime,
Indichiamo di seguito ciò che compare
in una videata del corso di Inglese in
modo da rendere l'idea di come È struttu-
rato il programma:
WHEN HE IS HE GOES IO RED
1 RIGHT
2 THIRSTY _
3 SLEEPY
Quafè la tua risposta?
La risposta esatta, per chi conosce l’In-
glese, è La terza ed è quindi necessario
premere il tasto “3” per ottenere in ri-
sposta il messaggio “ESATTO" ed il
passaggio alla domanda successiva,
Alla fine de 11' esercita /ione viene indi-
cato il numero delle risposte esatte, quel-
lo delle errate ed il tempo trascorso.
Nonostante, come era intuibile, i pro-
grammi esaminati non si sostituiscano ai
libri di testo nè tantomeno svolgano i
compiti assegnati a casa dai professori,
purtuttavia possono rivelarsi utili come
“ripasso” di argomenti precedentemen-
te affrontati a scuola.
Commodore Computer Club - 85
4
GIOCHI
COMMODORE 64
Attacco
aereo
di Carlo e l^orenzo Barazzetta
Un avvincente game
realistico e di
notevole
animazione scritto in
un pugno di righe.
u esito gioco, in parte in BASIC e in
parie in linguaggio macchina, consente
anche ai lettori inesperti di apportare
modifiche grazie aDe numerose REM
che indicano le POKE da alterare.
Risulta quindi semplice cambiare i co-
lori degli aerei, i loro ritardi negli sposta-
menti (t relative difficoltà dì manovra), i
volumi sonori degli effetti “speciali"
eccetera.
Mediante i tasti “IT ed "N'\ guidate
un aereo che deve sfuggire alle collisioni
con altri aerei (sprite) che sopraggiungo
no. Potete, a vostra volta, posizionarvi
alle loro spalle e sparare col tasto Shift,
Immediatamente partirà un proiettile
che, raggiunto 1 aereo avversario, gli
cambierà colore. Se, invece, urtate con-
tro gli aerei, esplodete ed il gioco rico-
mincia premendo il tasto F7.
Simpatico il rumore dei jet* davvero
realistico, e nuova è r animazione del-
l'aereo che, nello spostarsi a destra c a
sinistra, si inclina come se fosse uno
“vero 1 *.
PRINT
S30 PR I NT "USA I TASTI <E> E”CHR$
02 ) ;
240 PRINT ”< N> PER SPOSTARTI ” : PRI
100 REM COMMODORE 64
110 REM ATTACCO AEREO
1B0 :
130 SYS65H09: REM AZZERA SPI TE
140 H=2040: P-16120: K=36B64
150 U-5324B: 91-54272
160 FOR A-0 TO 24 ; POKE SI+A,0:NE
XT
170 POKE U+32 , 0 : REM COLORE BORO
□
100 POKE U+33 , E : REM COLORE 5FQN
DO
190 POKE 646, PEEKtU+32) AND 15
200 PRINT : PRI NT "ATTACCO AEREO (A
TTENDERE 127 £ 327) PRINT
210 PRINT"SCR ITTO DA CARL0”CHR9EC
NT
250 PRI NT "USA IL TASTO <SHIFT>”;
260 PR INTCHRS ( 32 ) "PER SPARARE” :P
RINT
270 FOR A“0 TO 127: READ B:PRINTC
HR$ C 1 9 ) A
2B0 IF B>-0 AND B<256 TKEN 300
290 PRINT "ERRORE NEL BLOCCO 1”:E
ND
300 C-C+B:POKE P+64+A,B:NEXT
310 IF COB4B4 THEN 290
32) ;
220 PR INT”E LORENZO BARAZZETTA”
320 FOR A-0 TO 63: POKE P+A,0 : NEX
T
330 FOR A-l TO 24 5TEP 3: POKE P+
86 - Commodore Computer Club
fl.lG:
NEXT
340
C-0:FOR A-0 TD 327; READ E:
PR
I NTCHRS C 19 TAEC 103 A
350
IF B>
■*0 AND B< 256
THEN 370
360
PRINT
"ERRORE NEL
BLOCCO 2”
:E
ND
370
C-C+E
L POKE K+A , E :
NEXT
3B0
IF C< >30380 THEN
360
330
POR A
i-0 TO S0:FQR
E— 1 TO
1
400
PDKE
E , PEEKCP+65+B + A*33
410
SY5K:
POKE C P+193“
B+A*3 3 , PEEK
C7B01
420
NEXTB, A;SYSK+9
430
PDKE
K+ei , i6:REn
RITARDO
GE
NERALE
440
PDKE
K+31, 40: REH
RII, SPOSTA
MENTO
450
POKE
K+3B , RB : REM
TASTO SIN!
STRA
460
POKE
K+46, 39: REH
TASTO DEST
RA
470
POKE
K+79 , 12 : REM
RITARDO
PR
□IETTILE
4B0
PQKE
K+240 , 00: REH
RII» SPOSI
.AEREI
490
POKE
K+330 , 32: REM
RITARDO
A
ERED
1
500
POKE
K+331 , 40: REM
RITARDO
A
EREO
2
510
POKE
K+332 , 49; REM
RITARDO
A
EREO
3
520
POKE
K+333,55: REM
RITARDO
A
ERED
4
630
POKE
K + 334 , 64 ; REM
RITARDO
A
EREO
5
540
POKE
K+335 , 72 : REM
RITARDO
A
EREO
6
550 PR INTCHRE £ 147 ì ■ : POKE U+22,17
5B0 POR A“1 IO 2S;FEINT
570 PRINTSPCCR0)CHR$Cl8ìi : POR B-
1 TD 11
500 PR I NTCHRS C 32D ; ; NEXTB , A
550 PR I NTCHRS C 13 > ,
600 PR I NTSPC C 31 }CHR$( 10 ) 11 PUNTI 11
610 PRINT5FCC315CHRSC1B3 "00000”
620 PDKE U , 129 : PDKE U+1,140
630 POKE 0+39,0:2 Eh COLORE AERE
0
640 POKE U+HB , 1 : REM COLORE PROI
ETTILE
650 POR A-2 TO 15: POKE U+A,1:NEX
T
660 POKE U+27 f 255
670 FOR A“0 TO E: POKE' H+ A, 254: NE
XT
600 POKE H+7,252
650 POR A-0 TO 10: POKE 32750+6,1
: NEXT
700 A-12: REM UOLUME MOTORE
710 POKE 51+5,0: POKE 5I+E,A*16
720 A-12 : REM UOLUME PROIETTILE
730 POKE SI +15,0: POKE 51+13 ,A+1G
740 POKE 51+14, 555 : POKE 31+15,55
S
750 A~B:REM UOLUME
7E0 POKE 51+24, A OR 12B: POKE S3+
18, 129
770 POKE 31+4,123
700 POKE U+21 , 127: POKE U+30 , 0
780 SYSK+13
000 POKE 51+4 , 126: POKE 51+11,32
010 A“15 : REM UOLUME SCOPPIO,
020 POKE 51+5,15: POKE 5I+E,A*16+
8
030 PDKE 51+1, 1 : POKE 51+4,123
B40 FOR A-l TD 100: POKE H , RNDC 1}
*16+64
050 POKE U+30 , RNDC 1 >*16
060 NEXT : POKE SI +4 ,128
B70 POKE U+21 , PEEKCU+21 3 AND 254
000 POKE 130,0: PRIMI
830 PR I NTSPC C 30 3CHRS C 18 ) "PREMI F
7 ,
300 A-3 : REM TASTO PER RIPARTIRE
310 IF PEEKCH035<>fì THEN 910
920 POR A-l TO 9 : PR I NTCHRS C 157 1 ;
: NEXT
930 POR A-l TO 0: FRI NTCHRS C 321; :
NEXT
940 GOTO 590
950 REM INIZIO DATI BLOCCO 1
360 DATA 0, 15,0,0, 16,0,0,56,0,0
,56,0
370 DATA 0,56,0,0, 56 ,0,0,32,0,0
, 20,0
3B0 DATA 0 , 150 ,0,0, 150 , 192 , 1 , 24
7 1 64
930 DATA 1,247,64,3,251, 120,3,2
51 , 12B
1000 DATA 7,125,132,7,125,132,6,
55, 132
Commodore Computer Club -87
GIOCHI
1010
DATA
0,40,0,0,76,0,0, 142 , 0 ,
0,209
i
0 , 142 , 0
1280
DATA
13, 173,21,206,41 , 127, 1
1020
DATA
0,0, 16,0,0, 16,0,0, 56 , 0
41 , 21
„ 0 , 56 , 0
1290
DATA
208, 163,32,141 , 11,212,
1030
□ AIA
0,56,0,0,124,0,0,236,0
173
k
,1,63,0
1300
DATA
30, 20B, 74, 144,1 , 96, 10,
1040
DATA
3,69, 120,27,69, 176,23,
10 1 144
125
1310
DATA
36,141,2,128,162,5,14,
1050
DATA
208 ,31 , 125 , 240 , 63 , 255,
2, 12B
248
1320
DATA
144,3,32.27,145,202,16
1060
DATA
126, 124, 252, 252, 124,12
, 245
6,240
1330
DATA
162,4,254,111,4,189,11
1070
DATA
124,62, 240 ,56,30,0,40 ,
1,4
0,0
1340
DATA
201 , 1B6, 208, B, 163*, 176,
1BB0
DATA
238,0, 1 , 239,0, 1 ,239,0,
157
0
1350
DATA
111,4.202,16,238, 152,5
1080
REM
FINE DATI BLOCCO 1
,222
1100
REM
INI2I0 DATI BLOCCO 2
1360
DATA
3, 12B, 20B, 29, 189, 74, 14
1110
DATA
162,7,6,2, 106,202, 16,2
5,157
50 „ 96
1370
DATA
3, 12B, 138,72,10,170,22
use
DATA
24,162,62,62,192,63,20
2,3
2, 16
g
1380
DATA
208 , 20B , 12 , 173 , 27 , 212 ,
1130
DATA
250,96,216, 160, 1E, 136,
157
»
208
1330
DATA
2 , 208 , 104 , 72 , 170, 32 , 27
1140
DATA
253,206,0,129,200,43, 1
, 14S
69,40
1400
DATA
104 , 170 , 202 , 16 , 219 , 206
1150
DATA
141 ,0,1 28 , 165 , 203 , $01 ,
,3,128
29,208
1410
DATA
208,41 , 163,80,141 ,9,12
1160
DATA
4, 169,253,208, 10,201 , 3
0,162
9, 20B
1420
DATA
5,189,249,7,56,233,254
1170
DATA
4 , 169,255,208,2, 169,25
, 1SB
4 , 141
1430
DATA
130,72, 10,170, 152,24,1
1180
DATA
24B , 7 , 56 , 233 , 254 , 24 , 10
25,2
9,0
1440
DATA
208,157,2,200,104, 170,
1190
DATA
20B ,141,0, 208 ,74,74,14
173
1,1
1450
□AIA
£7,212,41 , 63,208,3,32,
1200
DATA
212,206,1,126,208,117,
48, 145
-
168
1460
DATA
£02,16,222,76,20, 144,1
1210
DATA
12,141,1, 128, 173,21 , 20
73,33
0,41
1470
DATA
£08,41,15,141,10,128,1
1220
DATA
12B , 20B ,31,173,141,2,4
73 , 27
i,i
1480
DATA
212,41,15,205.10.128,2
1230
DATA
240,51,163, 132,141,15,
40 , 230
20B
■
1490
DATA
157, 40, 238, 173,27,212,
1240
DATA
173.0,208, 141,14,206,1
40 1 4
73,21
1500
DATA
166,254,208,11 , 173,27,
1250
DATA
206,9,128, 141,21 ,20B, 1
212
69 , 33
1510
DATA
48,4,169,253,208,2, 169
1260
DATA
141 , 11 , 212, 173,15,208 ,
,255
73 , 255
1520
DATA
157,249,7,96,-1
1270
DATA
10, 141 ,8,212, 206 , 15 r 20
1530
REM FINE DATI BLOCCO 2 |
SS - Commodore Computer Ciub
GIOCHI
COMMODORE 64
Prossimamente
sui vostri schermi
di Giancarlo Mariani
Win ter Gamtfi (Epyx)
M olii di voi, circa un anno e mezzo
fa, saranno n masti meravigliati di fronte
a Sumtner Games (giochi estivi), che la
Epyx proponeva, appunto, agli inizi del-
l'estate 1984.
Questo gioco, è composto da numero-
se gare olimpiche, da disputarsi contro il
computer o contro altri avversari, Sum-
mcr Garnes era (ed à tuttora) notevole
dal punto di vista grafico, delle animazio-
ni, per gli effetti sonori, eccetera. Proba-
bilmente nessuno, dopo averlo visto,
avrà pensato che si potesse sviluppare
qualcosa di meglio.
La Epyx ha riproposto, un anno dopo,
Summer (James IL che ha lasciato lette-
ralmente a bocca aperta gran parte degli
utilizzatori del 064 (ma anche di altri
computer).
Questo gioco, infatti, era stato (sem-
bra impossibile) addirittura migliorato in
grafica, suoni, velocità, movimenti, ri-
spetto al primo, ottenendo un prodotto
eccezionale sotto ogni punto di vista.
Considerato quindi il (meritato) suc-
cesso dei due programmi anzidetto, ecco
che la Epyx suggerisce un nuovo pro-
gramma che non è (come qualcuno po-
trebbe malignamente pensare) Surhmcr
Garnes III, bensì Wiruer Garnes (Giochi
invernali).
Il programma, come i precedenti, è
basato su attività sportive che T si disputa-
no sulla neve.
La grafica, i vari effetti e i suoni sono
addirittura migliorati.
Dopo aver caricato il programma, vi
sono le "solite” cerimonie di apertura
con sottofondo musicale. Stavolta però
tutto il campo è ricoperto di neve. Dopo
la presentazione (interrompi bile anche
prima che giunga a termine) il program-
ma presenta un menu con sette opzioni
selezionabili dal joystick posto indiffe-
rentemente in porta 1 oppure 2.
Da menu tì possibile: gareggiare in tut-
ti (o solo in alcuni) sporte, in un gioco
soltanto, fare pratica in una gara, sceglie-
Per il Commodore
64 è stato
probabilmente
sviluppato il più
ampio parco di
programmi
esistente per home
computer, tra cui
moltissimi giochi.
Vogliamo
presentarne due,
opera di due
software house
altrettanto “grandi":
la Epyx e la Elite.
re il numero dei joysticks, esaminare t
record mondiali e rivedere le cerimonie
di apertura.
Se l’opzione scelta è una delle prime
tre, viene chiesto il nome dei giocatori
(fino a un massimo di otto) c nel caso ve
ne sia solo uno, questi avrà come antago-
nista il computer.
Dopo a ver chiesto il nome, il C64 chie-
de anche la nazionalità de! giocatore.
Muovendosi con il joystick ci si deve po-
sizionare sulla bandiera de! Paese desi-
derato (m tutto sono 18„ Italia compresa)
e premere il pulsante in modo da ascolta-
re Virino nazionale del Paese scelto.
Dopo aver introdotto il nome e la na-
zionalità dei vari giocatori ed aver dato la
conferma della correttezza dei dati inse-
riti, un altro menu comprende i giochi
selezionabili, in tutto sette.
t - Hot Dog:
E‘ il salto acrobatico con sci. Dopo
essere partiti si deve muovere il joystick
Commodore Computer Club - 89
GIOCHI
per cercare di fare acrobazie: spostando
la leva a destra o a sinistra si faranno
rispettivamente capriole in avanti o aì-
ri n dietro. Spostandola in alto o in basso
si avrà una stabilizzazione dello sciatore,
mentre con posizioni intermedie si
avranno altri effetti, quali alzata di gam-
be, spostamento in avanti/indietro,
eccetera.
Il punteggio è determinato dal numero
e dalla qualità delle acrobazie svolte nel
breve tempo che si ha a disposizione.
Bisogna stare attenti a non sbilanciarsi
troppo, altrimenti si cade e si perdono
punti. Questi (come per altre gare) ven-
gono assegnati da otto giudici di gara che
ne hanno a disposizione dieci ciascuno.
Vi assicuriamo, però, che è veramente
difficile ottenere il massimo punteggio. -
Una splendida musica di sottofondo vi
accompagna per tutto il gioco che, dota-
to di grafica e velocità di movimento ec-
cezionali, conferma l'aita qualità del
prodotto.
2 - Biathlon
E 7 una gara di percorso sugli sci, com-
posta da quattro fasi, die viene svolta
i n divido a Smente da ciascun
partecipante.
Per prima cosa si dovrà oltrepassare
un ponte in pianura, sciando il più velo-
cemente possibile. In seguito vi sarà una
rilassante discesa, in preparazione della
salita, lungo la quale dovremo consuma-
re tutte le nostre forze (ed anche il joy-
stick...) per superarla. Compiuto per la
terza volta lo stesso percorso, ci sarà un
momento di pausa durame il quale, con
un fucile m continuo movimento, dovre-
mo colpire cinque bersagli fissi.
Il tutto si ripete quattro volte prima
che venga assegnato il punteggio, che
dipende non solo dal tempo impiegato
ma anche dal numero di bersagli colpiti.
3 - Figure Skating
Tra le gare invernali non poteva certo
mancare il pattinaggio artistico
A costo di ripetere cose già dette, si
sottolinea volentieri il nostro aprezza-
mento per la grafica e l’animazione della
ragazza che pattina; semhra divedere un
cartone animato.
Anche questo sport, come il preceden-
te, deve essere giocato individualmente.
Nel tempo di un minuto, dovremo, atte-
nendoci alle regole dd pattinaggio arti-,
stieo (c* ovviamente, muovendo il joy-
stick) eseguire acrobazie, tra cui giravol-
te. salti, eccetera senza, ovviamente,
cadere.
Il punteggio c dato dalla correttezza
degli esercizi svolti.
La gara è accompagnata da un’allegra
musichetta, che segue il ""ballo'' della
ragazza.
4 - Ski jump
E’ il classico salto dal trampolino. Do-
po averlo spiccato, in alto a destra com-
pare un riquadro, indicante 3*assctto del
giocatore durante il "volo*', che può es-
sere modificato mediante il joystick, cer-
cando di raggiungere una corretta posi-
zione di atterraggio. In caso contrario si
cadrà rovinosamente sulla neve, perden-
do la gara.
La distanza percorsa e lo “stile' de!
salto, determinano il punteggio, asse-
gnato a fine gara.
5 - Speed Skating
E" una gara di velocità di pattinaggio
sut ghiaccio, da disputarsi contro il coni-
m
poter o contro altri avversari. Per acqui-
stare velocità è necessario muovere il
joystick alternativamente a sinistra e a
destra.
Lo schermo è diviso in due parti indi-
pendenti, una per il giocatore e una per
l’av versano, che indicano la velocità ed i
metri percorsi. Vince, ovviamente, chi
arriva prima, e, nel caso di un maggior
numero di concorrenti, ò valido il tempo
minore.
6 - Free Skating
Questa gara è quasi identica al patti-
naggio artistico, solo che le acrobazie so-
no libere, e non risulta necessario atte-
nersi ad alcuna regola.
90 - Commodore Computer Club
GIOCHI
7 - Bnbslcd
Classica corsa su bob, ira le più veloci
del gioco, in cui occorre, guidando il bo-
lide a destra c a sinistra lungo la pista,
cercare di non rovesciarsi o di uscire dai
bordi. Il maggior punteggio si raggiunge
portando a termine la corsa nel più breve
tempo possibile.
1J termine del gioco
Alla fine delle gare verranno assegna-
te le medaglie d oro, d’argento e di bron-
zo e, volendo, verranno registrati su sup-
porto magnetico i record fatti dai concor-
renti, che resteranno così disponibili al
successivo caricamento del gioco.
Frank Brtinòs boxi ng {Elite)
Parliamo ora di un altro prodotto fan-
tastico, anch'csso di genere sportivo.
La software house è la Elite, famosa
ira t co nini od ori a ni (e non) per aver svi-
luppato un parco di favolosi programmi.
F.B.Boxing fa parte appunto di
questi.
Dopo averlo caricato, l’ut Muratore
verrà deliziato da una bellissima e sofisti-
cata grafica e da una perfetta esecuzione
musicale della colonna sonora del film
“Rocky”, che sicuramente tutti
conosceranno.
Rispetto ad altri programmi analoghi
peT C-64, questo rappresenta il massimo
per ciò che riguarda grafica, suono, ani-
mazioni, opzioni, eccetera.
In seguito alla presentazione, si può
decidere se vedere un dimostrativo op-
pure iniziare a giocare, In questo caso si
affronterà il primo antagonista (in tutto
sono nove, tra cui un Italiano dall'antipa-
tico nome di "Ravioli Mafiosi”: gli ame-
ricani, si sa, affogano nei luoghi
comuni).
Data la complessità del movimento,
questo viene effettuato non con un solo
joystick, ma addirittura con due contem-
poraneamente, uno per il movimento ve-
ro e proprio ed uno per colpire l'avversa-
rio. I possessori di un solo joystick do-
vranno pertanto affrettarsi ad acquistar-
ne un altro (ma vi assicuriamo che ne
vale la pena).
Nel tempo di tre minuti è necessario
mettere ko Fa v versano per tre volte, cer-
cando, ovviamente t di non farci mettere
ko a nostra volta.
Sullo schermo vengono indicate anche
le energie rimaste a disposizione ed il
tempo trascorso dalFinìzto della partita.
Dopo aver messo ko la prima o la se-
conda volta un avversario, questo si rial-
za, cercando di colpirci con una terribile
mossa segreta, difficilissima da evitare,
che cambia per ogni avversario e che ci fa
spesso finire al tappeto.
Se non riusciamo, entro i tre minuti, a
mettere ko l'avversario o, se peggio, ci
‘ stende" lui, la partita finisce.
In caso contrario viene chiesta la paro-
la d’ordine per caricare il successivo bo-
xer, Questa è generata casualmente dal
computer, per cui ogni volta che cari-
chiamo il gioco sarà necessario battere
tutti i boxer in sequenza a partire dal
primo, dato che non è possibile caricarli
nel Ford ine desiderato.
Continuando a sconfiggere avversari,
la gara diventa sempre più difficile, ren-
dendo quasi impossibile raggiungere il
nono boxer.
Alta fine viene dato il punteggio totale
di tutti gli avversari sconfitti.
Uno dei maggiori pregi di questo gioco
è l’alta velocità c realismo di gioco, para-
gonabile agli analoghi giochi da bar.
Sarebbe stato meglio se ci fosse stata la
possibilità di scegliere l’avversario con
cui iniziare ma. anche così, il divertimen-
to è assicurato.
I lettori ohe intendono colla-
borare sono pregati di tele-
fonare nel pomeriggi di Mar-
tedì e Venerdì di ogni setti-
mana (Tel. 02/8467346} allo
scopo di valutare, pur se
sommariamente, il valore
dei propri programmi. Per-
tanto non inviate nastri o di-
schi o dattiloscritti, se non
esplicitamente richiesti!
Eviterete perdite di tempo
(e di denaro).
Commodore Computer Club - 91
GIOCHI
COMMODORE 16
Due
games
dalla
Mastertronic
Non è vero che il Commodore 16
viene trascurato
dalle case di software.
Questi due giochi,
apparsi di recente sul mercato,
lo dimostrano.
Tutti frutti
Digitando RUN, dopo un pre-
caricamento di 71 giri di nastro, compare
Lina simpatica videafa per alcuni secondi.
In seguito il caricamento prosegue fino
alla fine (totale: ben 168 giri).
Il gioco parte automaticamente ac-
compagnato da una simpatica musichet-
ta che sfrutta completamente le capacità
sonore del computer. Se non sì preme il
tasto Pire del joystick vengono visualiz-
zate Funa dopo l'altra le sei schermate
che è possibile incontrare durante H gio-
co, II numero di cinque vite a disposilo-
ne non sempre è sufficiente, specie le
prime volte, a percorrere gli intricati la-
birinti lungo i quali dovete catturare ci-
liegie, evitando di farvi precipitare ad-
dosso enormi fragole.
Nella prima schermata è sufficiente
catturare tutte le ciliegie, evitando scon-
tri con omini (in numero di cinque) che
percorrono casualmente il vostro stesso
percorso.
Catturata l'ultima ciliegia, si passa au-
tomaticamente al secondo schermo nel
quale, dopo aver catturato le cilìgic raffi-
gurate, potete sparare, coi tasto Pire,
una pallina r He percorre il labirinto rim-
balzando con grande realismo lungo i
bordi. E’ necessario colpire, col la palli-
na, i cinque omini che, più agguerriti che
mai, non si stancano di inseguirvi.
Passando agli schermi successivi il gio-
co si arricchisce di nuove regole: racco
gliere ciliegie, spingere massi contro gli
omini che vi inseguono, evitare di esser
raggiunti.
Tutte le volte che il game termina,
compare nuovamente la videata iniziale,
il tempo impiegato dall’ultimo giocatore
per condurre a termine la partita e gli
ultimi otto punteggi più elevati.
Uno svantaggio è costituito dal fatto
che è necessario il joystick per giocare.
Ci siamo però accorti che premedo il
tasto F3 si dà inizio al gioco c, in seguito,
si sparano le palline. Premendo il tasto
Return Pomino si sposta in basso, col
tasto di Lira sterlina (posta tra “=** e
Shìft), a sinistra, coi tasto "4” a destra, e
col tasto Ins/del in alto.
Rockman
D opo un pre-earicamemo dì 17 giri, il
programma viene interamente letto in
140 giri. In questo giocò non solo è possi-
bile servisri del joystick e della tastiera.
ma è addirittura consentito scegliere i
tasti da premere per guidare il nostro
eroe lungo i labirinti del game.
Questo consiste nel catturare monete,
diamanti ed altri oggetti preziosi dissemi-
nati lungo i numerosi labirinti. Catturan-
doli, però, si fanno cadere oggetti posti al
di sopra di questi ed ù quindi necessario
esser lesti nelLal lontanarsi. Anche in
questo caso alcuni fantasmi tentano di
impedirvi il proseguimento del gioco.
Da segnalare la musica che vi accom-
pagna lungo tutto il gioco e alcuni effetti
di animazione decisamente simpatici.
Nonostante ilC-16, come è noto, non
abbia la possibilità di generare sprite,
questo gioco dimostra che ricorrendo ai
caratteri programmabili è possibile vi-
sualizzare animazioni sufficientemente
rapide ed originali. E’ inutile dire, però,
che è d’obbligo ricorrere alla tecnica del
linguaggio macchina.
92 - Commodore Computer Club
L’UTILE
PROVATI PER VOI
£fcfi DHk& Cesene Laitfer *
Tbouyt * A^firwrtfrtt Kit i
Ct^trc rrk i Smerla» ■+
MkHac - cade flflunitor *
Othar LRiUtitt
di Alessandro de Simone
A. n commercio sono presenti numerosi pro-
grammi in grado di svolgere funzioni non pre-
viste dai costruttori dei computer, Tutti, pe-
rù, devono esse scaricati da nastro o disco pri-
ma di servirsi delle opportunità che offrono.
Non sempre si ha la pazienza di effettuare tale
procedura, un po + per pignzia, un po' perchè,
nel caso sia necessario spegnere la macchina
bisognerebbe ricominciare tutto daccapo.
Si apprezzano volentieri, periamo, cartuc-
ce da inserire sul retro del C64 che entrano
immediatamente in funzione non appena si
accende l'apparecchio.
Ne abbiamo provata una (cd inserito per-
manentemente sulle nostre macchine...) ed
esattamente la TURBO 50 distribuita dalla
Mastertronic (Viale Aguggiari, 63/ A - 21100
Varese - tei. 0332/238898).
Questa cartuccia non occupa memoria
RAM riservata a] Basic, che dispone, quindi,
dei soliti 38911 bytes liberi. Utilizza, perù,
una parte delta RAM posizionata a partire
dall' indirizzo 49 152, Per caricare \ programmi
in Linguaggio Macchina (L.M.) che occupano
tali locazioni è quindi necessario disabilitare
la cartuccia via software senza /cioè, prender-
si il disturbo di staccarla fisicamente dal retro.
Con il pulsarne dì Reset presente sulla stessa
cartuccia, infatti, il Commodore 64 si com-
porta come se la cartridge fosse disinserita,
Ma bando ai preamboli, e passiamo alla
descrizione, pur se sommaria per ragioni di
spazio, delle nuove potenzialità offerte da
TURBO 50.
Come è bello
accendere il C-64
ed avere
immediatamente
disponibili tanti
comandi BASIC in
più, oltre alla
HEXN
Traduce in esadecimalc il numero decimale
KEYN
Abilita o disabilita le funzioni preprogram
mate coi tasti funzione fl-fB.
OLD
Fa “resuscitare" il programma Basic can
celiato accidentalmente col comando NEW
oppure QUIT o RESET (vedi dopo).
FL1ST
Visualizza pagina dopo pagina il program-
ma Basic in memoria in modo tale, cioè, da
bloccare ogni 25 righe la funzione di scTolling
che farebbe altrimenti uscire dallo schermo le
righe del listato.
aumentare la
velocità di
caricamento da
nastro o disco. . .
Comandi Basic aggiuntivi
AUTO N,M
Genera automaticamente la numerazione
di linee di un programma a partire da N con
incremento M,
OUIT
Elimina, via software, la cartuccia ed il C-
64 "pensa" che non ci sia più. Se il comando è
stato dato per errore, la si può attivare mio va-
ri- ^ t -l ji mente col comando SYS 49179,
Ricerca e visualizza tutte le righe del pro-
anima Basic in cui è presente l’elemento RENUM N,M
reato ELEMENT (istruzione, comando. Renumera t! programma Basic a partire da
inga* variabile, ecc.). N con intervallo M.
DEC N
Traduce il numero esadecimale N in
decimale.
DEL N-M
Cancella le linee Bàsic da N a M incluse
HELP
In caso di errore visualizza l’esatta istruzio-
ne Basic che ha generato Terrore stesso
REP
Abilita la funzione di autorepeat su tutti i
tatti.
FINO ELEMENT
Commodore Computer Club - 93
L’UTILE
RESET
Cane e iltì totalmente ciò che è in memoria,
debilita la cartuccia e presenta GM come se
questo fosse staio appena accesso.
SET N M
Colora i9 bordo col colore N ed il tondo con
M.
SHOW
Visualizza su schermo tutti j comandi di-
sponibili con lia cartuccia.
TRACE N
Evidenzia su schermo, durante f 'elabora-
zione di un programma, le linee che vengono
a mano a mano eseguite.
Comandi per file su cassetta
COMP
Verifica la corretta registrazione di un pro-
gramma salvato eoi comando FLIT (vedi
dopo).
GFIT "NOME -1
Carica 10 volte più velocemente un pro-
gramma registrato precedentemente col co-
mando PUT.
MERCE
Esegue una fusione tra due programmi,
PUT 4 ‘NOME * 1
Registra il programma Basic con una velo-
cità 10 volte più elevata del consueto
Comandi per file» su disco
DLGAD“NOME”
Carica ad una velocità 5 volte superiore al
consueto un programma Basic.
DMERGE “NOME "
Fonde il programma NOME presente sul
dischetto col programma presente in
memoria,
DSAVE“NOME”
Registra ad una maggiore velocità il pro-
gramma presente in memoria,
DVERIFVNOME"
Verifica il programma appena regì-strato,
1 (freccia in alto)
Visualizza la directory senza cancellare il
programma Basic presente in memoria.
(punto)
Indica quale errore è stato commesso nel
caso il drive lampeggi
N S R.V-U
Questi comandi, preceduti dal carattere di
punto {.)* eseguono, rispettivamente, la for-
mattazione di un disco; la cancellazione di un
file; il cambio di un nome; il valutale; la elisa-
bili t azióne del drive.
/ "NOME"
Digitando il nome dei programma, prece-
duto dal carattere di barra (/), EJ programma
viene caricato a gran velocità a partire dalla
locazione in cui era presente al momento del-
la registrazione. Corrisponde* cioè, al coman-
do; LOAD +, NQME\!U
FLOPPY N „
Assegna d numero 8 oppure 9 al floppy
collegato in quel momento col C-64,“
Comandi per copiare fUes
cofy m nome , \n.m
Copta il file “NOME” (lungo fino ad un
massimo di 186 blocchi!) dalla periferica N
(re giratore t2 p drivctS) alla periferica M, E'
ovvio che il caricamento può avvenire anche
ad alta velocità e che il programma effettua
una pausa per consentire T ventua le cambio
del nastro e/o disco.
RECOPY
Consente di effettuare un’altra copia del
programma o file appena compiuta col co-
mando COPY.
Comandi per l’uso
deir interfaccia Centronics
CENT A f tì
Attiva o disabilita i 1 interfaccia Centronics e
la predispone, o meno* in modo Listing
Mode.
COLUMN Q
Determina il numero Q di caratteri da
stampare per ciascuna riga.
Allineamento della testina
del registratore
Nella confezione è presente una speciale
cassetta che, inserita nel registratore ed utiliz-
zata col comando GET* consente la perfetta
regolazione dell 'azimut h grazie alla visualiz-
zazione di strisce colorate che appaiono sullo
schermo del TV.
Comandi monitor
Un programma per la gestione del Linguag-
gio Macchina è presente nella cartuccia e la
sua attivazione è possibile digitando il coman-
do MON.
La notevole particolarità risiede nel fatto
che questo programma, lungo 4Kbyies*£ rilu-
cabìle nel senso che £ possibile allocarlo nella
parte dì memoria RAM che più aggrada. Chi
lavora in L.M, sa bene i notevoli limiti imposti
da altri programmi similari che* pur se validis-
simi, occupano una ben precisa parte di me-
moria RAM impedendo, di fatto, di allocarvi
programmi particolari. Con TURBO 50. al
contrario, potetele scrivere listati in L,M. in
qualsiasi parte della memoria RAM,
1 comandi disponibili, sui quali saremo an-
cora più succinti, sono;
MEMTOP Fissa il punto piu alto di memoria
utilizzabile.
j»
ASSEMBLE Consente di scrivere il program-
ma in Assembler,
RREAKPQTNT Consente di inserire alflin-
terno di un programma un punto di Break
■#
COMPARE MEMORY Confronta tra loro
due segmenti di memoria,
DISASSEMBLE Disassembla una zona di
memoria.
EDITOR IN SCREEN Esamina una zona di
memoria.
FILL MEMORY Riempe con un numero
esadecimale una porzione di memoria.
GO Corrisponde al RUM
HUNT MEMORY Ricerca una sequenza di
bytes a IL interno di una zona di memoria.
INTERROGATE MEMORY Visualizza
una zona a blocchi di otto byte per rigo con la
corrispondente “traduzione" ASCII.
NEW LOC ATER riloca gli indirizzi assoluti
di un programma L.M. Analogamente la fun-
zione ZIP riloca tabelle.
Altre funzioni e comandi, di facile interpro
fazione, sono; Jump, Subroutine, Load, Prin-
ter Output, Re giste? Display, Save, Transfer
Memory, Video Screen, Exit,
Sono inoltre disponibili i comodi comandi
per effettate somme e sottrazioni in esaderi-
male e conversioni dì numeri.
Conclusioni
Sperando dì non aver dimenticato nessuna
delle potenzialità offerte da TURBO 50* con-
cludiamo asserendo che il prezzo (L* 125.000}
può sembrare non del tutto contenuto. Consi-
derando* però, i vantaggi offerti dalla cartuc-
cia* noi pensiamo che questa si ripaghi da tè* + .
94 - Commodore Computer Club
SCAMBIATEVI LE LISTE
0 **
Marcii Scori» - Via S Francesco LI - 20091
Presso (MI) - tei. 02/6100061.
Alessandro D'Amore - Via Umberto 16 -
73048 Nardo (LE).
Andrea Simon! - Via Isonzo 16 - Castelfranco
E, -teL 059/937205
Francesco Calumano - Via C . Matteotti C. le 5
35 - 92013 Menti - tei. 0925/71309.
Giovanni P&MjuarieUo - Via Forre 8, Susanna
129 B - 72022 Ladano (BR) ■ tei. 729291.
Marco Barili * Via Piave 4 -26026 Pizzighetto-
ne (CR) ■ tei. 0372/743052.
Pietro Piilier ■ Via Vico TI Fontcp 1 ] intano 12 -
74024 M and una - tei. 099/6791211.
Ma vi mi ti ano De Martis - Via Delfico 24/3 -
20155 Milano - tei. 02/3493615.
ri
Niccolo Veccia redi - P.zza Vi nei 29 - 00139
Roma - tei. 06/8109780
Mìrco /anca - Via Enrico Fermi 3 46035
O stiglia (MN) - tei. 0386/31657.
Romano Piacentini - Via Voi dei Sangue 171/
A - 20099 Sesto S. Giovanni (MI) - td 02/
2428447.
Mario Gatti - Via Schema 10 - 25(4(1 elusane
disco (BS) - te]. 030/989286.
Piero Graziarli - Via Delle Torri 72 - 50019
Sesto Fiorentino (FI).
Marco e Giuliano Quaranta - Via Malta 9 -
80055 Punici (NA) - tei. 081/4*4584.
Raffele Rondóni - Via Del Baby ino 151 -
00187 Roma Td. 06/6798610.
Walter Fktiesr - Via Borgo vecchio 12 - 30027
S. Doni di Piave (VE)
Andrea Magri* - Via Daniele Manin 112 -
31015 Conegliano (TS) - tei. 0438/63313.
Giuseppe Chiocci - Via S avelli della Porta 3 -
06024 Gubbio (PG) - tei. 075/9271549.
Gaetano Di Bello - Via Luiei Catenno 83
81036 S Cipriano D'Averi (CE) - td. 081/
8921268.
Massimo Pedinali - Via Gondim 44 - 44100
Ferrara ■ id 0532/903354.
Stefano Sgudó - Via Don Mi ozoni 2/ A - 54033
Carrara (MS) - Tel. 0585/72127.
Franco Silvestro - P trA S„ Martino 9 - 40126
Bologna - lei. 227074,
Ferdinando Rei-tapini - Vi u Cunei 14 - 40033
Castelmaggiore (BO) - tei 05 1/7 12580.
Salvatore Cerehione - Via Ribera 5 - 80128
Napoli - tei. 08 1/649108
Lorenzo De Angdis - Via R ratei anese 8 -
0MS9 Totfa - Te]. 0766/92615.
i
Edoardo Tratta - Via Lazio 3 80016 ma reno
(NA). +
David Malizia - Via L.T Inventori 60 - HO 1.4^5
Roma ■ tei. 55613/9.
Antonio Villani - P.zza Ischia 2 - 00141 Roma -
tei. 06/8174100.
Stefano Stami - Via C. Max 15 - 43100 Pii rni.i -
tei 0521/44354.
Sandro Matali - Via XIV Luglio 36A 50019
Sesto F no (FI) - tei. 055/4481640.
Mario Berardn - Via Vittorio Emanuele 265 -
12042 tìra (CN) - lei 0172/421703
l>emetrio Bc Lardimi - Via Simone Girini 32
00133 Roma * tei. 06/2692609.
Giovanni Remai vili - Via Lumino 31 37L39
Verona tei 582719.
UNA MOTO CAGfVA
UN PERSONAL COMPUTER
COMMODORE
UN MONITOR
0 UNA STAMPANTE
COMMODORE
-L
PER IL TUO COMPUTER
Centinaia di abbonarne ni i alla tua rivista Systems
preferita.
Decine di programmi su cassetta e libri delta Biblio-
teca Informatica Systems.
Aut. Min. Cono
Incolla qui i bollini
dell 1 0 P FRAZIONE FEDELTÀ 1 SYSTEMS
Prem:a anche il tuo ed col ante- segna tondo il suo
n om ertati vo tL .
edicola dì via .
r ! ■ i p ■ ■ i r 4 i 1 L f « 1 r n i ì r e n p il » r b. ì i i ■ j . j . . , , ,
CAP '.. .....città
Si G No G
Trova sempre la tua rivista Systems preferita?
Si □ No □
Le riviste Systems sono sempre bene esposto?
Ritaglia e spedisci a; Systems Editoriale S r.L V.le Famagosta 75 20142 MILANO
Commodore Computer Club - 95
I
Gianluca Riccardi/Costantìno M astratto . -
Via P.D. Passionala 3B - 03024 Ceprano (Fr)
Td. 0775/950102
Bruno Castdnuaeo - Via S. Antonio 3 - 23020
Montagna in Vaiteli ma (So) - Te). 0342/
38023+
■ ,
Daniele Peruzzi - Via J. Cook 8 ■ 52 100 Arezzo
Tei. 0575/911306
Tu genio Feria - Via P. Cominio 56 00175
Roma - TeL 06/765535
Bernadotti Flavio - Via Trento IO 15040
Montecaste Ilo (Al)
Fabio Bel Lassai - Via Fili Bandiera 13 - 95100
Catania -Tel. 415353
Sebastiano Caramagno -Contrada CipolLazzo
9601 1 Augusta - TeL 0931/993333
Erminio - V , le del Lavoro 20 - 87012
Castravi Ilari (Cs) - Tel. 0981/46393
Riccardo Donatimi * Via Postumia 22 31055
Quinto di Treviso -Tel, (*422/20894
Antonio Conticelo - Via Galli della Mantica
28 00122 Ostia (Rm) - Tel. 06/5603759
Michele Cervelli - Via Fiorentina 43 56025
Pontedera (Pi) - Tel, 0587/56046
Enzo Landra - Via delle Terme 97 - 95024
Acireale (Ct) - Tel. 095/608294
Riccardo Badenghini - Via Pianezza 153
10151 Torino - Te. 01 1/734940
Paolo Pagani - Via Guillcnzani 5 - 41100 Mo-
dena - TeL 059/350964
5 imo ne Martini - ViaBagìioni 24-06100 Peru-
gia -Tel. 075/61580
Oscar Bresciani - Via Veneto 24 - 20031 Cesa-
no Mademo (Mi)
Luca Broglierà * Via Comunale 46 - 31046
Oderzo (Tv) - Tel. 0422/717574
Loredana Mecca rie! lo - Via Goti 97 - 42019
Scandiano - Td, 0522/855130
+ w *
Claudio Dammkci) - Via Squillate 64 00178
Roma -Tel. 06/7992123
(Terardo Marra - Via P. Baratta 91/A - 84091
Battipaglia (Sa) - Tel. 0828/23130
Francese» Saracino * Via E. Saracino 25 -
70032 Bitónto ( Ba) - Td. 617600
Marco Cavedani - Via G. Pascoli 95 41058
Vignola (Mo) - Tei 059/771734
Salvatore Spanrdda - C.so Umberto - 09073
Guglìera- TeL 0785/39857
Sandro Garretti - ViaG. Amendola 17- 50053
Empoli (Fi) - Tel. 0571/78361
Frabrizio Rizzi - Via Castello 3060B 30122
Venezia -Td 041/22883
Marco Mori - Via F. Crispi 13 - 52 100 Arezzo
Td. 0575/22013
Primo Velinari - Via della Resistenza 18 -
48020 La’ diLugo(Ra)
Ruberto Pillotti - Via Audinot 35 - 40134 Bo-
logna -TeL 051/421956
Umberto Morra di Cella - Vìa Gen. Perolti 23
10091 Alpi guano (To) TeL 011/9677679
Massimiliano Cucciardi - Via Brecce Bianche
80 - 6013 1 Ancona - Tel 07 1/862641
Antonio Santagata - Via VaLbruna 16 3310U
Udine - Tel. 43456
Igor Print’ie - V.tc XX Settembre 35 - 34137
Gorizia - Td, 0481/89200
Massimo Fortin - Via Rovetta 6 - 20127 Mila-
no -Tel 285 ms
Poalo Solaro - P.zza Medaglie cTGnv 13 -
14100 Asti -Tel. 0141/51973
i
Roberto Miehctotb - Via G,R Gaudi 11/23
16143 Genova
Maurizio Bel toni - Via Legionari Polonia 33 -
24100 Bergamo Tel. 035/262083
Giulio Manni - Via Gallipoli 73 - 73055 Racalc
(Le) - Td, 0833/982551
i
Roberto Facco - Via Varesina 181 22100
Como - Tei. 031/505896
tu *i
And rea Gamanno&si - Via T„ Cortesi 19 -
50047 Prato (Fi)
Elisa Leoni - P.zza Giotto 20 52100 Arezzo-
Tei. 0575/20606
Eduardo Lampi* - Via Cadorna 21 50129
Firenze - Tel. 055/494648
Stefano Sampaolesi - Via A. Moro 15 -63021
A itiaro dota ( Ap ) Td. 1 3736/97462
Albano Filiali - Vìa B. Miriam 61 - 63035
Officia (Ap) - Tei 0736/80144
Marco Miiesi - Via Dante 55 - 24032 Cdolzio
corte (Bg) -TeL 0341/645507
Massimiliann Mattioli - V ia G. Paganelli 10-
471U0 Forlì - Tel . 0543/5 126 1
Michele Me le bionda - Via Tagliamene 1 1 Tra-
versa 6 - 83100 Avellino - Tel. 0825/3809 1
ri
P
Roberto Oberto - Via Discutetti 7 - 10025 Pino
Torinese (To) - TeL 011/842357
Roberto Guida - P /za Ernesto Cesato 66 -
80058 Torre Annunziala - Tel. 081/8616561
Angelo Germinario - Via F. Fusco 36 - 95100
Catania - Tel. 095/437234
Andrea Tranci - Via A. de Gasperì 34 - 52100
Arezzo - TeL 0575/33540
Giorgio Franchi - Cso Quintino Sella 87 -
10132 Torino -TeL 01 1/832875
Marco Maggi - Via Serbo 8/2 20139 Milano
Roberta lì inselli /A nd rea Padovani - Via Gort-
zales 4 - 20139 Milano - Tel. 02/567465/
5692965
Sergio Rivolcttì - Via Tevere 63017 Porto
San Girogio - Td, 0734/4419
Marco A rea ri - Via Walter Mattini t4 - 54036
Massa Carrara (Ms)
Claudio Luciani - Via J. Gagarin 34 - 63020
Piane di Falemne
Corrado Ferrari - Via F.uropa 40 - 20(197 5 .
Donato Milane*? (Mi) - Td. 02/5274458
Luigi Buzzi - Via A. Grandi 3 - 12011 Borgo
S D. - Tel. 0171/751248
Poalo Rivieccio - Via Moniehelkt 115 - 571(10
Livorno -Td. 0586/807043
96 - Commodore Computer Cfub
INVIARE TUTTA LA PAGINA ANCHE SE SI UTILIZZA UNA SOLA SCHEDA
l
Q)
E
o
c
m
o
o
*5
V
o
a.
<
o
o
z
Registrate if mio abbonamento annuale a Commodore Computer Club.
CI Ho versato oggi stesso il canone di L, 35.000 a mezzo c/e postale n s 37952207 intestato
a:
Systems Editoriale - V.ie Famagosta. 75 - 20142 Milana
- ■ ■ ' ' ' . . >'?■: v . r . .< » - : -
' -y>, ,‘tì 1 -t , -- T? ‘ ■ JijSfJ ‘i. -V Jt* * il :.»*«•. 1 _ r ìétv.' k t ' ' . , -
□ Ho inviato oggi stesso assegno bancario ri,..,. „ ....
per l'importo dì L. 35.000 intestato a Systems Editoriale
Si prega di scrivere il proprio nome e l'indirizzo completo ih modo chiaro e leggibile. Inviare
I a fotoco pia d el boi I etti no di c/è postaie.
r LÌ V -'
L *
• i *
Considerando che j numeri 1 . 2 e 7 sono esauriti, vogliate inviarmi i numeri arretrati
al prezzo di L, 5.000 cadauno per richieste fino a 4 numeri, o di L. 4.000 cadauno per
richieste oltre ; 4 numeri arretrati, e perciò per un totale di L, Sono a conoscenza che
ì fascìoli suddetti non saranno inviati in contrassegno é, pertanto, ho provveduto oggi stesso
a versare il canone di U„ ; a mezzo c/c postale n. 37952207 Intestato a;
Systems Editoriale - V.le Famagosta, 75 - 20142 Milano
A Vi
msm
STATISTICA
□
Non posseggo un computer
Posseggo un C64 „■
•Posseggo un VfC 20
Posseggo un Commodore Pius 14 .
Posseggo un Commodore Plus 16 .
Posseggo un registratore dedicato
Posseggo un drive 1541
Posseggo una stampante
Posseggo un monitor
hi!»!'* MutrH + iiifHtrlì
otiiH l'fciirMii'irrii
“■HtM* » + + - - - à - «H 4 r HM 4 i miìii
r > I * I « ■ i 4 I É il J I. I i 4 - %
t ¥ * ri 9 r a ■ ■ a * r i n
SiO ... no Ci
v< V fi*. - ( • .* * 1
si □ no □
sin ... noC
siri ... noG
sì □ ... noQ
si D ... no □
si □ ... no □
s\C ... no D
V 1
r- f ili’ - ■. ,1 1 - p _
COLLABORAZIONE
A titolo di pròva vi invio un articolo e là cassetta,.,,.,..:.,,.,-. .....disco.
col programma che intendo proporre per la pubblicazione dì cui garantisco l'originalità.
OOMANDA/RISPOSTA
‘ •V;'-' ? ‘ + ••
t . - . ' v ■ - -,
i - ■ {% m * - . «• ■* -4 S ' - ;
B a * * 1 8 ■* + »• “ # 4 ^ » j 4 4 r « „ > k k i ^ , trrava.aa*i>Ba*rrB'iiY'aa>|'rcBai.aBa ras
■
CU
E
o
z
RI
O
£
O
"3
M* I m *M r«é» 4 l • * 4 ¥ - 1 • fraa r a a « 4
i » a a | aa •> • a a « « m 4 *«•<+«* k r * *•
• - f- i ■ • •'Ai - m l . - ' Z * ' r
1 ■ r . 1 ■« ” «• r
■ ** M ' * ^t^4».ii»..if , aailM
' J i ì T ■ • i- i r • i a ■ a a B B ai a a a a ■ r i ■ fa ■ » m » a 4 f i a a a a. i a a a J--m a a a i.tn aa.^k. 44
■ 4 i ■ I 1 ■ li a
- J | ■ ■ 4 # | ■ f ■ ■ ■ 4 B a **. B ■ J f- I
■
• * t Mi - - 1 1 aria iiaai rasa mi 1 • a a 1 1.44 a a a a a a ■ a t a. «aa
- 4 - 4 fc * -M * - • + t - Imììm t cria! a a + r a
B a •*«••* -* ♦ B
1 | M 4 M • f M « HtìtHÌ-mbì
■M I »■*** HiM.MiHi . a -i i - B - a I B a a
RICHIESTA ARGOMENTI
più spesso dei seguenti
argomenti
GIUDI
0 ai programmi che indico di seguito;
l *_■ • -t- * fc # • « T k I 4 fe *> fi-* » * HMI 4
CERCO/OFFRO CONSULENZA
20142 Milano
INVIARE TUTTA LA PAGINA ANCHE SE SI UTILIZZA UNA SOLA SCHEDA
PRESENTA
-n;xn ' /X y± I F-i ':_. , - 4L' XV V ; r f J > — ; M i •
V tf/t ^ ‘ J A J5- // . - /, 4. ' ■
Jd
■''vS. / ^V' / "
£*» - l^vlAiS te*
4 ; >V7
\S
Lire
\ 2 .<m sFr.W- 50
-16*-- DMi9,5« !
O 3 1 IS 1
l *ve T H<ri“ d “ '/■•;
f«59m>P fcWon *
Composer
Percussions
International
parade
Arcadia
Bach
Basi io n è
Raldan Bembo
Band Aid
Beatles
Beethoven
Dalla
Dorali Durari
Genesi s
King
List?
Madonna
Mina
Mozart
Paoli
Pìiik Flovd
Polire
Pooh
Righeira
Rossi
Simon & Garfiinkel
Spandali Haliti
Stranss
L T sa for Africa
Vivaldi
Zeppelin
imM
. M /
t,
E*'
hS !■>
‘S,| j—
r v fvi\\ 7-§>
■ AX ^-|l^nV
"iWì-
"aCiSft,'//.
,||v _ ,^>
l ^ /; , J_7r 1,=— rp /f
5 J L_ vV x;'.v-: U-7 J gyff ^ M L tV u?, y i j Ut vS ^ # Wj 1 1 £\\ %
mwm%
=as$>%s
^ ’ 1 W vs -S 1 & -h't J ^C\V :i t sS I m y I f > :' U-
C ™- ; .M
'“'- ■ /J *